我的应用([URL])没有响应。我已经完成了您网站上推荐的步骤。
我已将此战争部署到我当地的tc-server,一切都在那里工作(/ people-server / rest / persons /)。我希望从[URL] / people-server / rest / persons /.
中获取一些xml请告知
Darren Leung
答案 0 :(得分:5)
您的应用实际上是响应http:// [URL] / _stax / status,这意味着容器能够正确接收和处理请求。
由于您的应用程序为/ people-server / rest / persons路径请求返回404,这意味着容器当前没有加载Servlet来处理这些请求。您的应用程序可能没有在运行时配置servlet有两个主要原因:
要确定是否存在错误,您应首先检查应用的日志。由于您没有发布任何错误,我将假设您已经检查了日志并且没有发现任何错误。
这使您无需配置任何Servlet来处理请求。看到你的URL之后,我注意到它的前缀是/ people-server,它看起来很可能像你在本地配置的TC服务器中使用的上下文路径前缀。由于部署在CloudBees上的应用程序在根上下文路径上运行,我尝试使用以下URL并看到它确实在响应: [URL] /休息/人/
这意味着您确实为处理/休息/人员/路径配置了Servlet,这意味着您在本地环境与部署环境中预期的URL略有不同。
如果您希望此Servlet在/ people-server上可用,则需要更新web.xml以将此前缀用于REST Servlet使用的路径。或者,您可以将应用程序部署为带有application.xml的EAR文件,该应用程序使用/ people-server的上下文路径作为您的webapp存档。
答案 1 :(得分:1)
作为一般规则 - 400类型错误(例如,在这种情况下为404)表示应用程序的问题几乎始终 - 并且通常与路径错误和映射有关。
500类型错误意味着应用程序中存在无法处理的错误,如下所示:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
它们的一些原因可能是如果应用程序启动缓慢,可能会有一段时间存在一些错误,504如果应用程序(它的所有实例)都非常慢(太慢)。
如果发生持续性502,这可能表示某些情况下存在平台问题(即请求未到达您的应用程序)。
您经常可以在应用日志中看到错误(蜜蜂app:tail将流式传输 - 或使用控制台)。
答案 2 :(得分:0)
如果您的应用使用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的一个奇怪的细节,但这是正确使用的类。