servlet没有被调用

时间:2016-04-09 07:00:19

标签: servlets liferay liferay-6

我在Liferay中开发简单的servlet。我看到它被初始化(通过将System.out放在init()方法中来验证)。但是当我将一些数据发布到servlet时,它不会被调用。如何调试或者我需要添加它以使其正常工作。

制作servlet条目文件:webapps / ROOT / WEB-INF / web.xml,liferay还有其他自定义webapp工作。

   .....
   <servlet>
       <servlet-name>HealthCheckServelet</servlet-name>
       <servlet-class>com.test.HealthCheck</servlet-class>
       <load-on-startup>1</load-on-startup>
   </servlet>
   <servlet-mapping>
       <servlet-name>HealthCheckServelet</servlet-name>
       <url-pattern>/health-check/*</url-pattern>
   </servlet-mapping>
   .......

使用HTTP GET http://host-ip/health-check/temperature

调用servlet

1 个答案:

答案 0 :(得分:1)

调用URL表明运行状况检查与Liferay无关,而与运行应用程序的服务器无关。我将在一个完全独立于Liferay的单独Web应用程序中实现它,并将其部署在同一个应用程序服务器上。这样你就不需要弄乱Liferay的web.xml(如果你更新Liferay需要迁移它)并且仍然可以给你带来同样的好处。如果您在健康状况检查中仍需要Liferay信息,只需使用API​​获取所需数据即可。再次 - 你可以获得更好的可维护性。

这样做的副作用是您可以在不需要Liferay运行的小型Web应用程序中轻松调试。 post a MCVE这里很容易找到你正在寻求建议的所有代码。

此外,通过在Liferay外部运行,您不会受到Liferay将应用于请求处理的任何servlet过滤器的影响 - 您的请求可能已经被捕获,谁知道。对于一个简单的问题,这是一个太复杂的解决方案。