2015-02-26 1 views
1

Я звоню это WEBSPHERE 8.5Получение 500 NullPointerException в Websphere - услуги Apache Wink Rest

@GET 
@Path("/test") 
@Produces("application/json") 
public dtObject tester() 
{ 
    dtObject r = new dtObject(); 
    r.successfulOperation(); 
    return r; 
} 

класс dtObject

@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL) 
@XmlRootElement 
public class dtObject { 
private String success; 
private String message; 

public dtObject() { 

} 

public void successfulOperation() 
{ 
    this.message = "Ok"; 
    this.success = "true"; 
} 

и ответы сервера:

ошибка 500 java.lang.nullpointerexception

в журналах:

RequestProces E org.apache.wink.server.internal.RequestProcessor  handleRequest An unhandled exception occurred which will be propagated to the container. 
java.lang.NullPointerException 
at org.apache.wink.common.internal.http.Accept.valueOf(Accept.java:139) 
at org.apache.wink.server.internal.contexts.HttpHeadersImpl.getAcceptHeader(HttpHeadersImpl.java:151) 
at org.apache.wink.server.internal.contexts.HttpHeadersImpl.getAcceptableMediaTypes(HttpHeadersImpl.java:105) 
at org.apache.wink.server.internal.registry.ResourceRegistry.filterByProduces(ResourceRegistry.java:573) 
at org.apache.wink.server.internal.registry.ResourceRegistry.filterDispatchMethods(ResourceRegistry.java:497) 
at org.apache.wink.server.internal.registry.ResourceRegistry.findSubResourceMethod(ResourceRegistry.java:391) 
at org.apache.wink.server.internal.handlers.FindResourceMethodHandler.handleSubResourceMethod(FindResourceMethodHandler.java:168) 
at org.apache.wink.server.internal.handlers.FindResourceMethodHandler.handleRequest(FindResourceMethodHandler.java:110) 
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.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1071) 
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) 

только один сервер это поведение я проверил еще в трех серверах и мои службы работают хорошо там.

Я также перезапущен как WebSphere предложено здесь https://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000014940544

Так я думаю, его больше всего на стороне сервера проблемы, но я не знаю точно, почему это происходит

+0

Глядя на трассировку стека, кажется, что исключение происходит во время согласования содержимого. Как и в эксперименте (если вы еще этого не сделали), попробуйте установить заголовок 'Accept' в' application/json' в запросе. Я лично не работаю с Wink, но я никогда не испытывал такого поведения (или предполагаемого поведения :-) с любой другой реализацией. Кажется странным, что отсутствующий заголовок может привести к появлению NPE. Это просто догадка. –

ответ

2

Оказывается, что конкретный имеет WebSphere его родной Внедрение JAX-RS отключено, так почему-то из-за этого он ответил нулевым указателем.

Обходной путь должен был использовать jersey 1.18 в качестве реализации JAX-RS в моем проекте, а не на родном ibm, и теперь он работает как шарм.

Надеюсь, что это поможет кому-то решить что-либо подобное.

+0

Эй, в настоящее время я сталкиваюсь с той же проблемой. Не могли бы вы добавить зависимость, которую вы добавили в свой 'pom'? – adolfosrs