1

組み込みtomcatサーバーをデプロイし、いくつかのjerseyWeb サービスを実装しようとしています。サーバーを正しく実行し、ジャージーによって処理されるものを除く他のサーブレットにアクセスすることができました。Web ブラウザーからジャージ サービスにアクセスしようとすると、次のエラーが表示されます。

Dec 02, 2014 6:21:41 PM org.apache.coyote.http11.AbstractHttp11Processor process
SEVERE: Error processing request
java.lang.NoSuchMethodError: javax.servlet.ServletContext.getEffectiveSessionTrackingModes()Ljava/util/Set;
    at org.apache.catalina.connector.CoyoteAdapter.postParseRequest(CoyoteAdapter.java:675)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:403)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)

アプリケーションの初期化により、以下が出力され、ジャージー コンテナーが正しくロードされたことを示します。servlets

Dec 02, 2014 6:21:11 PM com.sun.jersey.api.core.PackagesResourceConfig init
INFO: Scanning for root resource and provider classes in the packages:
    controllerModule.servlet
Dec 02, 2014 6:21:11 PM com.sun.jersey.api.core.ScanningResourceConfig logClasses
INFO: Root resource classes found:
    class controllerModule.servlet.HelloWorldService
Dec 02, 2014 6:21:11 PM com.sun.jersey.api.core.ScanningResourceConfig init
INFO: No provider classes found.
Dec 02, 2014 6:21:11 PM com.sun.jersey.server.impl.application.WebApplicationImpl _initiate
INFO: Initiating Jersey application, version 'Jersey: 1.18.1 02/19/2014 03:28 AM'

登録に使用しているコードresourcesは次のとおりです

Wrapper a = Tomcat.addServlet(rootCtx, "rest", "com.sun.jersey.spi.container.servlet.ServletContainer");
a.addInitParameter("com.sun.jersey.config.property.packages","controllerModule.servlet");
a.setLoadOnStartup(1);
rootCtx.addServletMapping("/*", "rest");

心に留めておくべきいくつかのこと
-HelloWorldServiceは、ほとんどのジャージー チュートリアルで見られる一般的なテストサーブレット
です。私は多くのチュートリアルを見てきました。たとえば、より大きなジャージバージョン、jetty の使用、http-jersey-server などです。jersey 1.18.xtomcat

更新 03.12.2014

問題は pom.xml ファイルへの依存関係にあったようです

私が使用していた:

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
</dependency>

私が変更しなければならなかったもの:

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.0.1</version>
</dependency>

HttpServlet奇妙なことに、ジャージのサーブレットは機能しますが、クラスを拡張する私が持っている他のサーブレットは機能しません

4

0 に答える 0