Ich erhalte folgenden Fehler und meine JSP wird nicht geladen.Nicht in der Lage, JSP aus Jersey zu zeigen: MessageBodyWriter nicht gefunden für Medientyp = text/html
[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.
Aber alle meine JSON url funktioniert gut.
Im Folgenden sind meine Code-Blöcke.
@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 ist wie folgt.
<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>
==== EDIT ====
Modified web.xml mit Filter
<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>
Sie können init-params nur verwenden, wenn ich denke. Wenn Sie mehrere Werte für einen einzelnen Parameternamen verwenden möchten, trennen Sie sie durch ein Komma oder Semikolon oder eine neue Zeile. Ich denke das Problem ist das JspMvcFeature wird nicht registriert –
Auch mit Ihrer Sichtbar, sollten Sie nicht die 'WEB-INF/jsp' in den Pfad, der bereits in der web.xml konfiguriert ist. Ich denke du solltest einfach 'main' verwenden. Vielleicht "main.jsp", aber ich denke "main" sollte genug sein. –
Ich habe das auch versucht, aber keinen Erfolg. Nun suchen Sie, wie Sie mehrere Param-Wert –