应用程序在本地运行但返回404在cloudbees上运行

som*_*y99 0 cloudbees

我的应用([URL])没有响应.我已经完成了您网站上的建议步骤.

我已将此战争部署到我当地的tc-server,一切都在那里工作(/ people-server/rest/persons /).我希望从[URL]/people-server/rest/persons /中获取一些xml.

请指教

Darren Leung

小智 5

您的应用实际上是响应http:// [URL]/_stax/status,这意味着容器能够正确接收和处理请求.

由于您的应用程序为/ people-server/rest/persons路径请求返回404,这意味着容器当前没有加载Servlet来处理这些请求.您的应用程序可能没有在运行时配置servlet有两个主要原因:

  1. 您尚未正确配置Servlet以处理这些请求(这通常通过WEB-INF/web.xml中的servlet和servlet-path条目完成)
  2. 在应用程序的启动过程中发生了一个错误,导致容器无法加载已配置的Servlet.

要确定是否存在错误,您应该检查的第一件事是应用程序的日志.由于您没有发布任何错误,我将假设您已经检查了日志并且没有发现任何错误.

这将为您提供没有配置任何Servlet来处理请求的场景.看到你的URL之后,我注意到它的前缀是/ people-server,它看起来很可能像你在本地配置的TC服务器中使用的上下文路径前缀.由于部署在CloudBees上的应用程序在根上下文路径上运行,我尝试使用以下URL并看到它确实在响应:[URL]/rest/persons /

这意味着您确实为处理/休息/人员/路径配置了Servlet,这意味着您在本地环境与部署环境中预期的URL略有不同.

如果您希望此Servlet在/ people-server中可用,则需要更新web.xml以将此前缀用于REST Servlet使用的路径.或者,您可以将应用程序部署为带有application.xml的EAR文件,该应用程序使用webapp存档的/ people-server上下文路径.