2011-06-30 6 views
1

私はEclipse IndigoでJavaサーバーアプリケーションを開発しています。これはJettyにデプロイされています。今私は、Spring Securityでアプリケーションに認証を追加しようとしています。私は私のbusiness-layer-context.xmlに次の定義を追加しました:EclipseでのサーブレットAPIの使用

<security:http> 
     <security:intercept-url pattern="/**" access="ROLE_USER" /> 
     <security:http-basic /> 
</security:http> 

さて、問題は、Eclipseは私にこのエラーを与えることである:エラーが発生した処理を「/MyServer/WEB-INF/business-layer-context.xml」java.lang.NoClassDefFoundErrorによって引き起こされる:javax/servlet/Filter。 Jettyにアプリケーションをデプロイすると、JettyにサーブレットAPIが含まれているので、正常に動作します。
アプリケーションがサーブレット・コンテナにデプロイされ、APIが使用可能であることをEclipseに理解させる最も良い方法は何ですか? Eclipseのプロジェクト構築パスにJettyサーブレットJARを追加することもできますが、それは各開発者にEclipseのJettyへのパスを設定する必要があり、開発者固有の設定を最小限に保ちたいと考えています。
エラーを取り除く良い方法がありますか?

答えて

4

JavaサーブレットAPIを実装しているservlet-api.jarまたは関連するJARをプロジェクトビルドパスに含める必要があります。 Eclipseで

、あなたがする必要があります:右プロジェクト、その後、 "プロパティ" をクリックし

  • 「Javaビルドパス」 - >「ライブラリ」
  • 「外部JARSの追加」ボタンをクリックし、servlet-api.jarまたはJavaサーブレットAPIを実装する関連するjarを見つけます。

完了したら、[OK]をクリックしてプロジェクトを再構築します。 jarファイルはサーブレットアプリケーションを実行するので、Jetty libフォルダにあります。

+0

これはいい方法がないということですか?この場合、私は今これで解決します。とにかくありがとうございました。 – Carlos

+0

@Carlosでは、APIのJettyの実装ではなく、Servlet APIのインターフェイスで作業するので心配する必要はありません。 –

+0

私が心配しているのは、ビルドパスに外部ファイルが依存するということです。 – Carlos

0

プロジェクトライブラリにサーバーライブラリを追加し、classpatHに追加します。

+0

私は考えましたが、Eclipseを満足させるために、別の方法で不要なライブラリをプロジェクトに追加する必要があるため、魅力的ではありません。 – Carlos

関連する問題