2016-06-07 92 views
0

我收到以下錯誤,並且我的JSP未加載。無法顯示來自Jersey的JSP:未找到媒體類型= text/html的MessageBodyWriter

[info] JSR-330 'javax.inject.Inject' annotation found and supported for autowiring 
2016-06-07 13:04:16 INFO ReportController:242 - welcome page load called 
Jun 07, 2016 1:04:16 PM org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor aroundWriteTo 
SEVERE: MessageBodyWriter not found for media type=text/html, 
type=class org.glassfish.jersey.server.mvc.Viewable, 
genericType=class org.glassfish.jersey.server.mvc.Viewable. 

但是我所有的JSON網址工作正常

以下是我的代碼塊。

@Path("/reports") 
public class ReportController extends SpringBeanAutowiringSupport { 

    @POST 
    @Path("/submitReport") 
    @Produces(MediaType.APPLICATION_JSON) 
    @Consumes(MediaType.APPLICATION_JSON) 
    public ReportDTO submitReportCall (ReportDTO submitReportRequest) { 
     //..... 
    } 

    @GET 
    @Path("/test") 
    public Viewable index(@Context HttpServletRequest request) { 
     request.setAttribute("obj", new String("IT Works")); 
     LOGGER.info("welcome page load called"); 
     return new Viewable("/WEB-INF/jsp/main.jsp", null); 
    } 
} 

web.xml如下。

<servlet> 
     <servlet-name>jersey-serlvet</servlet-name> 
     <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> 
     <init-param> 
      <param-name>jersey.config.server.provider.packages</param-name> 
      <param-value>com.mytool.rest.service</param-value> 
     </init-param> 
     <init-param> 
      <param-name>jersey.config.server.provider.classnames</param-name> 
      <param-value>org.glassfish.jersey.media.multipart.MultiPartFeature</param-value> 
     </init-param> 
      <init-param> 
       <param-name>jersey.config.server.mvc.templateBasePath.jsp</param-name> 
       <param-value>/WEB-INF/jsp</param-value> 
      </init-param> 
      <init-param> 
       <param-name>jersey.config.server.provider.classnames</param-name> 
       <param-value>org.glassfish.jersey.server.mvc.jsp.JspMvcFeature</param-value> 
      </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

==== 編輯 ====

修改web.xml中有過濾

<filter> 
     <filter-name>jersey-serlvet</filter-name> 
     <filter-class>org.glassfish.jersey.servlet.ServletContainer</filter-class> 
     <init-param> 
      <param-name>jersey.config.server.provider.packages</param-name> 
      <param-value>com.aol.compoundtool.rest.service</param-value> 
     </init-param> 
     <init-param> 
      <param-name>jersey.config.server.provider.classnames</param-name> 
      <param-value>org.glassfish.jersey.media.multipart.MultiPartFeature, org.glassfish.jersey.server.mvc.jsp.JspMvcFeature</param-value> 
     </init-param> 
      <init-param> 
       <param-name>jersey.config.server.mvc.templateBasePath.jsp</param-name> 
       <param-value>/WEB-INF/jsp</param-value> 
      </init-param> 

    </filter> 
    <filter-mapping> 
     <filter-name>jersey-serlvet</filter-name> 
     <url-pattern>/aol/*</url-pattern> 
    </filter-mapping> 
+0

你一次只能使用init-params。如果要爲一個參數名稱使用多個值,請用逗號或分號或新行分隔它們。我認爲問題在於JspMvcFeature沒有被註冊 –

+0

同樣對於你的可視化,你不應該在路徑中使用'WEB-INF/jsp',它已經在web.xml中配置了。我認爲你應該使用'main'。也許'main.jsp',但我認爲'main'應該足夠了。 –

+0

我也試過,但沒有成功。現在尋找如何聲明多個參數值 –

回答

2

我在澤西2.22.2同樣的問題。這是在我的情況下,使用碼頭9ish

我失蹤

<dependency org="org.glassfish.jersey.ext" name="jersey-mvc-jsp" rev="2.22.2"/> 

針對特定的錯誤消息。 常春藤沒有獲得其他所需的依賴關係。

檢查https://jersey.java.net/documentation/2.22.2/user-guide.html#modules 子你的球衣的版本中的URL,文檔

的正確版本我過濾高清

<filter> 
     <filter-name>jersey-servlet</filter-name> 
     <filter-class>org.glassfish.jersey.servlet.ServletContainer</filter-class> 
     <init-param> 
      <param-name>jersey.config.server.provider.packages</param-name> 
      <param-value> 
         com.foo.services.mobile.resource, 
         com.fasterxml.jackson.jaxrs.json 
      </param-value> 
     </init-param> 
     <init-param> 
       <param-name>jersey.config.server.provider.classnames</param-name> 
       <param-value> 
        org.glassfish.jersey.media.multipart.MultiPartFeature, 
        org.glassfish.jersey.server.mvc.jsp.JspMvcFeature 
       </param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
</filter> 
<filter-mapping> 
    <filter-name>jersey-servlet</filter-name> 
    <url-pattern>/rest/*</url-pattern> 
</filter-mapping> 

支持多部分上傳和JSP MVC這些都是我的依賴關係。 enter image description here 但獲取所有列在編譯下的內容,以瞭解您正在使用的任何功能。並測試你是否想測試。

相關問題