java - JSON JAX-RS channel : Failed to find resource/HtmlDefaultRepresentation/defaultHtmlEntry. jsp

标签 java json websphere jax-rs apache-wink

我有 JAX-RS JSON channel :

@Path("/data")
public class DataChannel {

@GET
@Produces(MediaType.APPLICATION_JSON)
public Response getGridData(@HeaderParam("Range") String rangeHeader) {

问题是(通常)在第一次调用时我从 Wink 的 HtmlProvider 收到异常,而后续调用会正确处理并返回 JSON:

0000006f servlet E com.ibm.ws.webcontainer.servlet.ServletWrapper service SRVE0068E: An exception was thrown by one of the service methods of the servlet [de.datev.qmrzsv.rest.ApplicationConfig] in application [qmslmsv_ear]. Exception created : [javax.ws.rs.WebApplicationException: com.ibm.ws.jsp.webcontainerext.JSPErrorReport: JSPG0036E: Failed to find resource /HtmlDefaultRepresentation/defaultHtmlEntry.jsp at org.apache.wink.server.internal.providers.entity.html.HtmlProvider.include(HtmlProvider.java:78) at org.apache.wink.server.internal.providers.entity.html.HtmlProvider.writeTo(HtmlProvider.java:112) at org.apache.wink.server.internal.providers.entity.html.HtmlProvider.writeTo(HtmlProvider.java:46) at org.apache.wink.server.internal.providers.entity.html.HtmlSyndEntryProvider.writeTo(HtmlSyndEntryProvider.java:81) at org.apache.wink.server.internal.providers.entity.html.HtmlSyndEntryProvider.writeTo(HtmlSyndEntryProvider.java:38) at org.apache.wink.common.internal.providers.entity.FormatedExceptionProvider.writeTo(FormatedExceptionProvider.java:108) at org.apache.wink.common.internal.providers.entity.FormatedExceptionProvider.writeTo(FormatedExceptionProvider.java:48) at org.apache.wink.server.internal.handlers.FlushResultHandler.handleResponse(FlushResultHandler.java:199) at org.apache.wink.server.handlers.AbstractHandler.handleResponse(AbstractHandler.java:38) at org.apache.wink.server.handlers.ResponseHandlersChain.handle(ResponseHandlersChain.java:26) at org.apache.wink.server.handlers.ResponseHandlersChain.handle(ResponseHandlersChain.java:22) at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75) at org.apache.wink.server.handlers.AbstractHandler.handleResponse(AbstractHandler.java:39) at org.apache.wink.server.handlers.ResponseHandlersChain.handle(ResponseHandlersChain.java:26) at org.apache.wink.server.handlers.ResponseHandlersChain.handle(ResponseHandlersChain.java:22) at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75) at org.apache.wink.server.handlers.AbstractHandler.handleResponse(AbstractHandler.java:39) at org.apache.wink.server.handlers.ResponseHandlersChain.handle(ResponseHandlersChain.java:26) at org.apache.wink.server.handlers.ResponseHandlersChain.handle(ResponseHandlersChain.java:22) at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75) at org.apache.wink.server.handlers.AbstractHandler.handleResponse(AbstractHandler.java:39) at org.apache.wink.server.handlers.ResponseHandlersChain.handle(ResponseHandlersChain.java:26) at org.apache.wink.server.handlers.ResponseHandlersChain.handle(ResponseHandlersChain.java:22) at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75) at org.apache.wink.server.internal.log.Responses.handleResponse(Responses.java:90) at org.apache.wink.server.handlers.ResponseHandlersChain.handle(ResponseHandlersChain.java:26) at org.apache.wink.server.handlers.ResponseHandlersChain.handle(ResponseHandlersChain.java:22) at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75) at org.apache.wink.server.handlers.AbstractHandler.handleResponse(AbstractHandler.java:39) at org.apache.wink.server.handlers.ResponseHandlersChain.handle(ResponseHandlersChain.java:26) at org.apache.wink.server.handlers.ResponseHandlersChain.handle(ResponseHandlersChain.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:232) 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:1225) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:775) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:457) at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178) at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1032) at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3761) at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:304) at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:975) at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662) at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:195) 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.HttpICLReadCallback.complete(HttpICLReadCallback.java:87) at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165) 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:1815) Caused by: com.ibm.ws.jsp.webcontainerext.JSPErrorReport: JSPG0036E: Failed to find resource /HtmlDefaultRepresentation/defaultHtmlEntry.jsp at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionProcessor.findWrapper(AbstractJSPExtensionProcessor.java:447) at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionProcessor.getServletWrapper(AbstractJSPExtensionProcessor.java:338) at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:965) at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:1384) at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.include(WebAppRequestDispatcher.java:548) at org.apache.wink.server.internal.providers.entity.html.HtmlProvider.include(HtmlProvider.java:75) ... 58 more Caused by: java.io.FileNotFoundException: JSPG0036E: Failed to find resource /HtmlDefaultRepresentation/defaultHtmlEntry.jsp ... 64 more

运行环境是WebSphere服务器8.5。

看起来第一次选择了错误的提供者, header 明确指出应使用 JSON 作为响应。从客户端发送的 HTTP header 也隐式表明需要 JSON:

Accept text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8 Accept-Encoding gzip, deflate Accept-Language en,de;q=0.5 Content-Type application/json

是什么导致了这个问题以及如何避免它?

最佳答案

检查日志中是否有以前的错误。

当生成响应时引发异常时,将使用替代提供程序(在这种情况下 - HtmlProvider)。

异常可能是由配置问题或缺少依赖项引起的。

关于java - JSON JAX-RS channel : Failed to find resource/HtmlDefaultRepresentation/defaultHtmlEntry. jsp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18183551/

相关文章:

java - 我无法打印我的数组

java - GSON库中自定义读写方法

java - Android:将数据从java发送到php文件并有响应

java - 当 RAD 执行 "Run On Server"时,WebSphere 将 EAR 文件放在哪里?以及如何在其上运行createEJBStubs?

java - 将双列表转换为分组字符串

java - 提供以空格分隔的输入

java - 设计二维世界的最佳解决方案 - 生命游戏

javascript - 循环遍历 xml2js 解析的 json 项时无法访问 xml 属性

java - 需要帮助实现在 WAS7 上运行的 Java/JEE 应用程序的单点登录

java - promise 堆与最大堆