我在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答案 0 :(得分:1)
调用URL表明运行状况检查与Liferay无关,而与运行应用程序的服务器无关。我将在一个完全独立于Liferay的单独Web应用程序中实现它,并将其部署在同一个应用程序服务器上。这样你就不需要弄乱Liferay的web.xml(如果你更新Liferay需要迁移它)并且仍然可以给你带来同样的好处。如果您在健康状况检查中仍需要Liferay信息,只需使用API获取所需数据即可。再次 - 你可以获得更好的可维护性。
这样做的副作用是您可以在不需要Liferay运行的小型Web应用程序中轻松调试。 post a MCVE这里很容易找到你正在寻求建议的所有代码。
此外,通过在Liferay外部运行,您不会受到Liferay将应用于请求处理的任何servlet过滤器的影响 - 您的请求可能已经被捕获,谁知道。对于一个简单的问题,这是一个太复杂的解决方案。