2016-09-02 19 views
-1

私はSAML SSO認証に取り組んでいます。 私はSAMLメタデータを生成するサーブレットを作成し、それをデプロイして実行して出力を得ました。 同じコードでSAMLメタデータを生成するJavaクラスを作成し、それを独立して実行しようとしました。私は、そのサーブレットアプリケーションに使用したのと同じJarファイルを追加しました。 しかし、以下の例外があります。誰も私がアプリケーションを独立して実行するとJavaサーブレットを使用しての違いを見つけるのを助けることができますか? ありがとうございます。はサーブレットとして機能しますが、Javaクラスとしては機能しません。どうして?

例外:Webコンテナでのサーブレットとして実行

Click here to see the Exception

+0

コードスニペットを投稿できますか? –

+0

スタンドアロンプ​​ログラムにslf4j jarを追加しましたか?ロギングに使用されているようです。 –

+0

ここには異なるクラスパスがあるようです。ここには別のログバックライブラリがあります。 –

答えて

1

もののすべての種類を自動的にサーブレットコンテナによって提供されるクラスパス上にあることを意味します。

main()を使用して実行するということは、クラスパスに必要なものをすべて自分で配置する必要があることを意味します。あなたが持っているClassNotFoundExceptionは、その点で十分に明確でなければなりません。

(私は「クラスパス」と言っていましたが、サーブレットコンテナでは一般的にはそれほどシンプルではありませんが、それはポイントではありません。また、サーブレットとして実行し、あなたのものを意味するかもしれませんは独立したJavaプログラムとして実行できません。単にライブラリのものが故意にサーブレットコンテナの使用を意図していたからです)。

+0

私は、Webアプリケーションで使用したのとまったく同じjarファイルを追加しました。 これらのjarファイルを追加する以外に、スタンドアロンアプリケーションのクラスパスをどのように設定するのですか。ご意見をお聞かせください。 –

+0

あなたが追加したジャーの内容をブラウズすると、org/slf4j/impl/MessageFormatter.classファイルが見つかりますか? –