我的工作與新澤西寧靜的API與Atmosphere GET和POST方法。新澤西州的Servlet返回405甚至定義
這裏是我的web.xml
<servlet>
<description>AtmosphereServlet</description>
<servlet-name>AtmosphereServlet</servlet-name>
<servlet-class>org.atmosphere.cpr.AtmosphereServlet</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.example.p1</param-value>
</init-param>
<async-supported>true</async-supported>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>AdminPanel</servlet-name>
<servlet-class>org.atmosphere.cpr.AtmosphereServlet</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.example.p2</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.config.property.JSPTemplatesBasePath</param-name>
<param-value>/WEB-INF/admin/</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>AdminPanel</servlet-name>
<url-pattern>/admin/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AtmosphereServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
現在,我有@Path("/register")
資源類和我已經定義了兩個@GET
和@POST
方法。沒有其他班級在我的整個項目中處理路徑/register
。
@Path("/register")
public class Register{
@POST
public String method1(){
return "POST";
}
@GET
public String method1(){
return "GET";
}
}
我使用的URL爲http://129.123.3.3/user/register
,我用我的電話POST方法。
定義的Inspite GET和POST方法,我得到
HTTP狀態405 - 不允許的方法
但是,當我刪除我的serlvet映射AdminPanel
和AtmosphereServlet
改變<url-pattern>
到/*
代替/
相應方法被調用。但這種方式我不能用它在我的AdminPanel
的servlet定義的URL。我錯過了什麼?如果這是隻與Servlet Mapping
問題什麼都可以映射,這樣的請求被正確地路由到/admin
和其他請求不受阻礙?
子資源定位器可以幫助你解決這個問題,看看這個:https://jersey.java.net /documentation/latest/jaxrs-resources.html – Forhad
試圖在結果是,沒有任何變化。 –