如何在Jersey Framework中使用“可查看”?

时间:2013-11-22 08:14:41

标签: jsp frameworks jersey web.xml

我开发了使用泽西框架。这个程序有两个功能。

JSON通信功能和JSP调用功能。 但是,只有JSON函数可以工作。

JSP文件位于此路径。

  

... / WEB-INF /视图/ myJSP.jsp

并且,URL是..

  

JSP函数:http:// {host}:{port} / proj / myClass / FuncJSON

     

JSON功能:http:// {host}:{port} / proj / myClass / FuncJSP

这是我的web.xml

<!-- for FuncJSP -->
<filter>
    <filter-name>funcjsp</filter-name>
    <filter-class>com.sun.jersey.spi.container.servlet.ServletContainer
    </filter-class>
    <init-param>
        <param-name>com.sun.jersey.config.property.packages</param-name>
        <param-value>proj.com.compony.proj.service</param-value>
    </init-param>
    <init-param>
        <param-name>com.sun.jersey.config.property.JSPTemplatesBasePath
        </param-name>
        <param-value>/WEB-INF/views/</param-value>
    </init-param>
    <init-param>
        <param-name>com.sun.jersey.config.property.WebPageContentRegex
        </param-name>
        <param-value>/WEB-INF/views/.*</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>funcjsp</filter-name>
    <url-pattern>/proj/myClass/funcJSP/*</url-pattern>
</filter-mapping>

<!-- for FuncJSON -->
<servlet>
    <servlet-name>funcjson</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer
    </servlet-class>
    <init-param>
        <param-name>com.sun.jersey.config.property.packages</param-name>
        <param-value>proj.com.compony.proj.service</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>funcjson</servlet-name>
    <url-pattern>/proj/*</url-pattern>
</servlet-mapping>

这是我的来源。

@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@Path("/FuncJSON")
public String funcJSON(JSONObject jsonObject, @Context HttpServletRequest req,  @Context HttpServletResponse res) {
    ...
    log.debug("** funcJSON **");
}


@GET
@Produces(MediaType.TEXT_HTML)
@Path("/FuncJSP")
public Viewable funcJSP(
        @Context HttpServletRequest req,
        @Context HttpServletResponse res) {
    ...
    log.debug("** funcJSP **");
    return new Viewable("/myJSP.jsp");
}

如果我执行FuncJSP, “** funcJSP **”记录在日志文件中。

但是,结果视图是“未收到任何数据(Chrome)”。

请给我一些建议:)

1 个答案:

答案 0 :(得分:0)

尝试使用不同的映射并查看它是否先工作:

而不是:

<filter-mapping>
    <filter-name>funcjsp</filter-name>
    <url-pattern>/proj/myClass/funcJSP/*</url-pattern>
</filter-mapping>

使用:

<filter-mapping>
    <filter-name>funcjsp</filter-name>
    <url-pattern>/rest/myClass/funcJSP/*</url-pattern>
</filter-mapping>