Ошибка вызова RESTful веб-сервиса на WebSphere 8.5.5.2 сервер

Я развернула RESTful приложения с помощью Apache Wink упакован в EAR на WebSphere 8.5.5.2 ND. При запуске приложения он дает мне"успешной инициализации" сообщение:

[5/14/15 15:56:03:588 CDT] 0000006d RestServlet   I org.apache.wink.server.internal.servlet.RestServlet getApplication The system is using the my.domain.mobile.rest.RestfulResourceLoader JAX-RS application class that is named in the javax.ws.rs.Application init-param initialization parameter.
[5/14/15 15:56:03:605 CDT] 0000006d SystemOut     O   15:56:03,605 INFO  [User=] [RestfulResourceLoader] loading resource classes
[5/14/15 15:56:03:684 CDT] 0000006d ApplicationPr I org.apache.wink.server.internal.application.ApplicationProcessor process The following JAX-RS application has been processed: my.domain.mobile.rest.RestfulResourceLoader
[5/14/15 15:56:03:688 CDT] 0000006d Resources     I org.apache.wink.server.internal.log.Resources logResourceInfo The server has registered the JAX-RS resource class my.domain.mobile.resources.RestfulLogin with @Path(login).
[5/14/15 15:56:03:690 CDT] 0000006d Providers     I org.apache.wink.server.internal.log.Providers log The class my.domain.mobile.RestExceptionHandler was registered as a JAX-RS ExceptionMapper provider for java.lang.Exception Java types.
[5/14/15 15:56:03:974 CDT] 0000006d ServletWrappe I com.ibm.ws.webcontainer.servlet.ServletWrapper init SRVE0242I: [MyApplication] [/context_root] [JAX-RS Servlet]: Initialization successful.

Но как только я попал в URL, сервер дает мне ниже сообщение об ошибке:

[5/14/15 15:59:55:006 CDT] 000000b5 SystemOut     O   15:59:55,006 INFO  [User=] [RequestInterceptor] Initializing Request Hanlder
[5/14/15 15:59:55:010 CDT] 000000b5 SystemOut     O   15:59:55,010 INFO  [User=] [ResponseInterceptor] Initializing response interceptor
[5/14/15 15:59:55:068 CDT] 000000b5 SystemOut     O   15:59:55,068 INFO  [User=] [RequestInterceptor] URI path "/login" invoked on [my.domain.mobile.resources.RestfulLogin@978a19b]
[5/14/15 15:59:55:070 CDT] 000000b5 RequestProces I org.apache.wink.server.internal.RequestProcessor logException The following error occurred during the invocation of the handlers chain: NoClassDefFoundError with message org.apache.wink.server.internal.handlers.SearchResult while processing POST request sent to http://my.domain.name:81/context_root/rest/login
[5/14/15 15:59:55:071 CDT] 000000b5 RequestProces E org.apache.wink.server.internal.RequestProcessor handleRequest An unhandled exception occurred which will be propagated to the container.
                                 java.lang.NoClassDefFoundError: org.apache.wink.server.internal.handlers.SearchResult
        at my.domain.mobile.handler.RequestInterceptor.handleRequest(RequestInterceptor.java:48)
        at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
        at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
        at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75)
        at org.apache.wink.server.internal.handlers.CreateInvocationParametersHandler.handleRequest(CreateInvocationParametersHandler.java:54)
        at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
        at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
        at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75)
        at org.apache.wink.server.internal.handlers.FindResourceMethodHandler.handleResourceMethod(FindResourceMethodHandler.java:151)
        at org.apache.wink.server.internal.handlers.FindResourceMethodHandler.handleRequest(FindResourceMethodHandler.java:65)
        at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
        at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
        at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75)
        at org.apache.wink.server.internal.handlers.FindRootResourceHandler.handleRequest(FindRootResourceHandler.java:95)
        at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
        at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
        at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75)
        at org.apache.wink.server.internal.handlers.HeadMethodHandler.handleRequest(HeadMethodHandler.java:53)
        at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
        at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
        at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75)
        at org.apache.wink.server.internal.handlers.OptionsMethodWADLHandler.handleRequest(OptionsMethodWADLHandler.java:51)
        at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
        at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
        at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75)
        at org.apache.wink.server.internal.handlers.SearchResultHandler.handleRequest(SearchResultHandler.java:33)
        at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
        at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
        at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75)
        at org.apache.wink.server.internal.log.ResourceInvocation.handleRequest(ResourceInvocation.java:92)
        at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
        at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
        at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75)
        at org.apache.wink.server.internal.log.Requests.handleRequest(Requests.java:76)
        at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
        at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
        at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75)
        at org.apache.wink.server.handlers.AbstractHandlersChain.run(AbstractHandlersChain.java:60)
        at org.apache.wink.server.internal.RequestProcessor.handleRequestWithoutFaultBarrier(RequestProcessor.java:207)
        at org.apache.wink.server.internal.RequestProcessor.handleRequest(RequestProcessor.java:154)
        at org.apache.wink.server.internal.servlet.RestServlet.service(RestServlet.java:124)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1230)
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:779)
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478)
        at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
        at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136)
        at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:79)
        at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:960)
        at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1064)
        at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3837)
        at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:304)
        at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:981)
        at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662)
        at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:200)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:459)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:526)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:312)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:283)
        at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
        at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
        at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)
        at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
        at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
        at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
        at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
        at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
        at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
        at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1864)
Caused by: java.lang.ClassNotFoundException: org.apache.wink.server.internal.handlers.SearchResult
        at java.net.URLClassLoader.findClass(URLClassLoader.java:600)
        at com.ibm.ws.bootstrap.ExtClassLoader.findClass(ExtClassLoader.java:214)
        at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:772)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:749)
        at com.ibm.ws.bootstrap.ExtClassLoader.loadClass(ExtClassLoader.java:120)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:726)
        at com.ibm.ws.classloader.ProtectionClassLoader.loadClass(ProtectionClassLoader.java:62)
        at com.ibm.ws.classloader.ProtectionClassLoader.loadClass(ProtectionClassLoader.java:58)
        at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:584)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:726)
        at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:584)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:726)
        ... 69 more

Раньше я развертывает то же приложение на WebSphere 7 и работает нормально. Я знаю, что WebSphere 8.5 поставляется с Wink баночки, так что я удалил эти банки из EAR, а затем развернуть его на сервере. Кроме того, я включил многословную загрузку классов на своем сервере и обнаружил, что класс загружается при запуске сервера. Хотя, когда я зарегистрировался в Class Loader Viewer из консоли, я не смог найти класс. Добавление банки в общей библиотеке также не работает для меня. Было бы здорово помочь, если бы кто-то указал мне правильное направление, чтобы решить эту ошибку.

редактировать

Следующее утверждение дает ошибку внутри обработчика:

SearchResult result = context.getAttribute(org.apache.wink.server.internal.handlers.SearchResult.class);

1 ответ

Решение

WAS 8.5 поставляется со встроенным Apache Wink 1.1. Вы можете выполнить следующие шаги, чтобы перенести приложение на WAS 8.5:

1) Удалите все apache wink jar из папки lib вашего приложения.

2) Для создания вашего приложения вы можете использовать эти две веб-сферы: com.ibm.ws.prereq.jaxrs.jar и com.ibm.ws.prereq.jackson.jar. Вы можете найти эти файлы в папке WAS_HOME/plugins.

3) Создайте свое приложение с помощью этих jar-файлов, но не упаковывайте эти jar-файлы в EAR или WAR своего приложения.

4) Если тип вашего приложения EAR, убедитесь, что все остальные ресурсы и класс, который расширяет класс Application, являются частью войны.

5) Переустановите ваше приложение, теперь оно должно работать нормально.

Другие вопросы по тегам