我的應用程序([URL])未響應。我已經完成了您網站上的推薦步驟。應用程序在本地運行,但返回404在雲上運行
我已經將這場戰爭部署到了我的本地tc-server,並且所有東西都在那裏工作(/ people-server/rest/persons /)。我希望從[URL]/people-server/rest/persons /中獲得一些xml。
請告知
達倫·萊
我的應用程序([URL])未響應。我已經完成了您網站上的推薦步驟。應用程序在本地運行,但返回404在雲上運行
我已經將這場戰爭部署到了我的本地tc-server,並且所有東西都在那裏工作(/ people-server/rest/persons /)。我希望從[URL]/people-server/rest/persons /中獲得一些xml。
請告知
達倫·萊
您的應用程序實際上是響應HTTP:// [URL]/_stax /狀態,這意味着該容器能夠接收並妥善處理請求。
由於您的應用正在爲/ people-server/rest/persons路徑請求返回404,這意味着容器當前沒有裝載Servlet來處理這些請求。有跡象表明,你的應用程序可能沒有在運行時配置servlet的原因主要有兩個:
要確定是否有錯誤,首先應該檢查應用程序的日誌。由於您沒有發佈任何錯誤,因此我會假設您已經檢查了日誌並沒有發現任何錯誤。
這會讓您看到沒有任何Servlet配置爲處理請求的情況。在看到您的URL後,我注意到它的前綴是/ people-server,它看起來像您在本地配置的TC服務器中可能使用的上下文路徑前綴。由於部署在CloudBees上的應用以根環境路徑運行,因此我嘗試使用以下URL並確認它確實在響應: [URL]/rest/persons/
這意味着您的Servlet已配置爲處理/休息/人員/路徑,這意味着您在本地環境中預期的URL與您部署的環境中存在細微差異。
如果您希望此servlet在/ people-server上可用,您需要更新web.xml以將此前綴用於您的REST Servlet使用的路徑。或者,您可以將應用程序部署爲具有application.xml的EAR文件,該application.xml使用/ people-server的上下文路徑作爲Web應用程序歸檔文件。
作爲一般規則 - 400類型的錯誤(例如404在這種情況下)表示應用程序的問題幾乎總是 - 並且通常與路徑錯誤和映射有關。
500型錯誤的意思是在應用程序中unhanded錯誤,這是因爲每個:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
他們的一些原因可能是,如果應用程序啓動緩慢,有可能是一個短期的有一些錯誤的時間段,504如果應用程序(它的所有實例)非常慢(太慢)。
如果發生持久性502,這可能表示某些情況下的平臺問題(即請求未到達您的應用程序)。
您可以經常在您的應用程序日誌中看到錯誤(蜜蜂app:tail會對此進行流式處理 - 或者使用控制檯)。
如果您的應用程序使用JAX-RS爲jboss(「JavaEE 6 Web配置文件」)容器上的其餘內容提供服務,則需要爲此功能啓用容器支持。就在這個servlet的聲明添加到你的web.xml
<servlet>
<servlet-name>jax-rs</servlet-name>
<servlet-class>javax.ws.rs.core.Application</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jax-rs</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
你的IDE會警告javax.ws.rs.core.Application不是一個servlet,而這確實是從JAX-RS API一個奇怪的細節,但是這就是正確的類將被使用。
非常感謝,這確實是我的問題。另外,很好的解釋。 – someguy99 2012-08-15 13:55:34