2015-06-08 68 views
0

How to make Apache Tomcat accept DELETE method之前詢問此問題,但它提供的解決方案對我無效。我已經添加Tomcat,啓用DELETE方法

<init-param> 
    <param-name>readonly</param-name> 
    <param-value>false</param-value> 
</init-param> 

到web.xml和我<servlet>設置是這樣的:

<servlet> 
    <servlet-name>default</servlet-name> 
    <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class> 
    <init-param> 
     <param-name>debug</param-name> 
     <param-value>0</param-value> 
    </init-param> 
    <init-param> 
     <param-name>listings</param-name> 
     <param-value>false</param-value> 
    </init-param> 
    <init-param> 
     <param-name>readonly</param-name> 
     <param-value>false</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

不過,我仍然有DELETE訪問時,得到了405。有什麼建議?順便說一句,我已經重新啓動tomcat。

回答

1

看一看源代碼: Default Servlet

在那裏,你可以看到,如果是網絡資源的刪除調用失敗的狀態碼405不允許返回。

從你的問題目前還不清楚您要刪除的內容 - 這似乎是你的資源不能被刪除。

tomcat funcspec狀態:

在每個HTTP DELETE請求通過這個servlet處理,以下>應進行加工:

  • 如果不允許修改靜態資源(由設定一個配置參數),返回HTTP狀態403(禁止)。
  • 如果嘗試從/ META-INF或/ WEB-INF刪除資源,則返回HTTP狀態403(禁止)。
  • 如果請求的資源不存在,則返回HTTP狀態404(未找到)
  • 從包含此Web應用程序的靜態資源的目錄上下文解除綁定資源。如果成功,返回HTTP狀態204(無內容)。否則,返回HTTP狀態405(方法不允許)。

無論是源代碼,或者你可以看到,刪除方法是通過你只需要一個URL傳遞到的資源,實際上可刪除了Servlet接受了功能規範。

+0

我的問題。我正在使用GET ... – laike9m