2013-12-26 2 views
0

Я пытаюсь открыть сервер REST (без интерфейса), используя джерси + гризли. Я пытаюсь использовать весну.Исключение службы при интеграции Jersey - Grizzly with Spring 3

Моя ссылка GitHub проект: https://github.com/seshumadhav/java-projects/tree/master/grizzlySpringJersey

Когда я бегу 'MyServer', и ударил URL как http://localhost:3388/smc/time, я ударилась с ServletHandler.doServletService исключением 'java.lang.NoSuchMethodError'. Полный журнал сервера ниже

Может ли кто-нибудь помочь мне понять причину этого и как это сделать?

Dec 26, 2013 5:53:21 PM org.glassfish.grizzly.servlet.WebappContext deploy 
INFO: Starting application [DEMO REST Server WebappContext] ... 
Dec 26, 2013 5:53:21 PM org.glassfish.grizzly.servlet.WebappContext log 
INFO: [DEMO REST Server WebappContext] Initializing Spring root WebApplicationContext 
Dec 26, 2013 5:53:21 PM org.springframework.web.context.ContextLoader initWebApplicationContext 
INFO: Root WebApplicationContext: initialization started 
Dec 26, 2013 5:53:21 PM org.springframework.context.support.AbstractApplicationContext prepareRefresh 
INFO: Refreshing Root WebApplicationContext: startup date [Thu Dec 26 17:53:21 IST 2013]; root of context hierarchy 
Dec 26, 2013 5:53:21 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions 
INFO: Loading XML bean definitions from class path resource [applicationContext.xml] 
Dec 26, 2013 5:53:21 PM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons 
INFO: Pre-instantiating singletons in org.s[email protected]192d5cf3: defining beans [resourceFoo,springRunner,myBean,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor]; root of factory hierarchy 
Dec 26, 2013 5:53:21 PM org.springframework.web.context.ContextLoader initWebApplicationContext 
INFO: Root WebApplicationContext: initialization completed in 377 ms 
Dec 26, 2013 5:53:21 PM com.sun.jersey.spi.spring.container.servlet.SpringServlet getContext 
INFO: Using default applicationContext 
Dec 26, 2013 5:53:21 PM com.sun.jersey.spi.spring.container.SpringComponentProviderFactory registerSpringBeans 
INFO: Registering Spring bean, resourceFoo, of type com.demo.web.ResourceFoo as a root resource class 
Dec 26, 2013 5:53:21 PM com.sun.jersey.server.impl.application.WebApplicationImpl _initiate 
INFO: Initiating Jersey application, version 'Jersey: 1.17.1 02/28/2013 12:47 PM' 
Dec 26, 2013 5:53:22 PM org.glassfish.grizzly.servlet.WebappContext initServlets 
INFO: [DEMO REST Server WebappContext] Servlet [com.sun.jersey.spi.spring.container.servlet.SpringServlet] registered for url pattern(s) [[/*]]. 
Dec 26, 2013 5:53:22 PM org.glassfish.grizzly.servlet.WebappContext deploy 
INFO: Application [DEMO REST Server WebappContext] is ready to service requests. Root: [/]. 
Dec 26, 2013 5:53:22 PM org.glassfish.grizzly.http.server.NetworkListener start 
INFO: Started listener bound to [localhost:3388] 
Dec 26, 2013 5:53:22 PM org.glassfish.grizzly.http.server.HttpServer start 
INFO: [HttpServer] Started. 
In order to test the server please try the following urls: 
http://localhost:3388/smc/time to see time for smc 
http://localhost:3388/bsv/time to see time for bsv 
Press enter to stop the server... 
Dec 26, 2013 5:53:28 PM org.glassfish.grizzly.servlet.ServletHandler doServletService 
SEVERE: service exception: 
java.lang.NoSuchMethodError: org.glassfish.grizzly.http.server.Request.createInputStream()Lorg/glassfish/grizzly/http/io/NIOInputStream; 
    at org.glassfish.grizzly.servlet.ServletInputStreamImpl.initialize(ServletInputStreamImpl.java:89) 
    at org.glassfish.grizzly.servlet.HttpServletRequestImpl.initialize(HttpServletRequestImpl.java:208) 
    at org.glassfish.grizzly.servlet.ServletHandler.doServletService(ServletHandler.java:212) 
    at org.glassfish.grizzly.servlet.ServletHandler.service(ServletHandler.java:189) 
    at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:164) 
    at org.glassfish.grizzly.http.server.HttpHandlerChain.service(HttpHandlerChain.java:196) 
    at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:164) 
    at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:175) 
    at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119) 
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:265) 
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:200) 
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:134) 
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112) 
    at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:78) 
    at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:815) 
    at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112) 
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115) 
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55) 
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135) 
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:567) 
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:547) 
    at java.lang.Thread.run(Thread.java:744) 

Dec 26, 2013 5:53:28 PM org.glassfish.grizzly.servlet.ServletHandler doServletService 
SEVERE: service exception: 
java.lang.NoSuchMethodError: org.glassfish.grizzly.http.server.Request.createInputStream()Lorg/glassfish/grizzly/http/io/NIOInputStream; 
    at org.glassfish.grizzly.servlet.ServletInputStreamImpl.initialize(ServletInputStreamImpl.java:89) 
    at org.glassfish.grizzly.servlet.HttpServletRequestImpl.initialize(HttpServletRequestImpl.java:208) 
    at org.glassfish.grizzly.servlet.ServletHandler.doServletService(ServletHandler.java:212) 
    at org.glassfish.grizzly.servlet.ServletHandler.service(ServletHandler.java:189) 
    at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:164) 
    at org.glassfish.grizzly.http.server.HttpHandlerChain.service(HttpHandlerChain.java:196) 
    at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:164) 
    at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:175) 
    at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119) 
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:265) 
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:200) 
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:134) 
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112) 
    at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:78) 
    at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:815) 
    at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112) 
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115) 
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55) 
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135) 
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:567) 
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:547) 
    at java.lang.Thread.run(Thread.java:744) 

Относящиеся другой вопрос: Может кто-то правильно если я использую правильные/последние зависимостей Maven

ответ

2

оригинальный ПОМ, кажется, сломана.

Вы можете это исправить, изменив некоторые зависимости следующим образом:

Понизить grizzly-http-servlet от 2.3.4 к 2.2.16

Таким образом, он совместим с другими гризли (переходной) зависимостей:

<dependency> 
    <groupId>org.glassfish.grizzly</groupId> 
    <artifactId>grizzly-http-servlet</artifactId> 
    <version>2.2.16</version> 
</dependency> 

Также , уменьшите зависимость спецификации API сервлета от 3.1.0 до 3.0.1

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

Решение Ur помогло мне. Он исправлен. Я обновил код на github. Любопытно узнать: как вы поняли, что проблема связана с версиями? Я пытаюсь понять это, чтобы я мог использовать это понимание для любых будущих проблем? – smc

+0

Сначала клонировал проект, построил его и открыл «ServletInputStreamImpl» в среде IDE, заметил ошибку компиляции, посмотрел на pom, увидел несоответствие версии для «grizzly-http-servlet», изменил ее версию. Теперь ему не удалось реализовать новый метод из servlet-api 3.1, также изменил версию servlet-api. это оно –

Смежные вопросы