簡體   English   中英

Jersey / web.xml / Servlet路由問題

[英]Jersey/web.xml/Servlet Routing Issue

因此,這主要是用來說明問題的代碼,但問題如下:

將我的瀏覽器指向localhost:8080 / licsrv / items返回404。

啟示性的web.xml

<!-- Java Remoting Servlet -->
    <servlet>
        <servlet-name>licenseGenService</servlet-name>
        <servlet-class>org.springframework.web.context.support.HttpRequestHandlerServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>licenseGenService</servlet-name>
        <url-pattern>/remoting/licensing</url-pattern>
    </servlet-mapping>

    <!-- Restful API Servlet-->
    <servlet>
        <servlet-name>licensingRestService</servlet-name>
        <servlet-class>
            com.sun.jersey.spi.spring.container.servlet.SpringServlet
        </servlet-class>
        <init-param>
            <param-name>
                    com.sun.jersey.config.property.packages
            </param-name>
            <param-value>
                mypackage.rest
            </param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>licensingRestService</servlet-name>
        <url-pattern>/orders</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>licensingRestService</servlet-name>
        <url-pattern>/items</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>licensingRestService</servlet-name>
        <url-pattern>/customers</url-pattern>
    </servlet-mapping>

ItemsResourceImpl.java

@Path("/items")
public class ItemsResourceImpl implements ItemsResource 
{

@GET
    @Produces("text/html")
    public String testItems()
    {
        return "<html><body><h1>Items Resource Tester</h1><p>Items Resource is available.</p></body></html>";
    }

.....
}

然后我的applicationContext.xml中有bean

現在ItemsResource(一個接口)還定義了注釋和方法,這可能是問題嗎? 我的印象是Jax-RS注釋沒有被繼承。 我有兩個servlet並缺少某些東西嗎? 我有一個純REST服務,只有一個servlet和相同的配置可以完成相同的事情。 根據我如何更改配置,我也會從中得到“ 405不允許的方法”。 有任何想法嗎?

嘗試訪問http://localhost:8080/licsrv/items/items @Path批注定義相對於應用程序根目錄的路徑(由web.xml中的servlet映射定義)。

servlet映射對我來說是可疑的。 我不熟悉spring,但是如果servlet映射是這樣的:

<servlet-mapping>
    <servlet-name>licensingRestService</servlet-name>
    <url-pattern>/orders/*</url-pattern>
</servlet-mapping>

網址應類似於: localhost:8080/licsrv/orders/items ,具有相同的ItemsResourceImpl實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM