java - 如何使用liferay 6和portlet显示servlet?

标签 java servlets liferay-6 portlet

我正在尝试显示一个servlt。为此,我有一个部署在 liferay 内的 portlet (.war)。我在 liferay 中创建了私有(private)站点,以查看 porlet 中的不同页面(.xhtml)。 我在 web.xml 中定义了一个用于显示 servlet 内容的 url。

<servlet>
    <servlet-name>metrics-admin</servlet-name>  
    <servlet-class>com.liferay.portal.kernel.servlet.PortalDelegateServlet</servlet-class>
    <init-param>
        <param-name>servlet-class</param-name>
        <param-value>com.codahale.metrics.servlets.AdminServlet</param-value>
    </init-param>
    <init-param>
        <param-name>sub-context</param-name>
        <param-value>/metric/admin/*</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>    
</servlet>

<servlet-mapping>
    <servlet-name>metrics-admin</servlet-name>
    <url-pattern>/metrics/admin/*</url-pattern>
</servlet-mapping>

但是,如果我使用 postman 并尝试 GET 我得到了这个:

enter image description here

我得到了类似“Not Found”的页面

我该如何解决?

最佳答案

解决方案是仅添加以下代码:

<servlet>
    <servlet-name>metrics-admin</servlet-name>
    <servlet-class>com.liferay.portal.kernel.servlet.PortalDelegateServlet</servlet-class>
    <init-param>
        <param-name>servlet-class</param-name>
        <param-value>com.codahale.metrics.servlets.AdminServlet</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

如您所见metrics-admin是 servlet 名称和访问它的方式。 正确的网址是

<your-url>.<your-domain>/delegate/<servlet-name>

完成了:D

关于java - 如何使用liferay 6和portlet显示servlet?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42656131/

相关文章:

java - SimpleDateFormat解析错误

java - 创建 session 时如何获取IP地址?

jsf - Primefaces 文件上传和 session 超时

java.lang.NoClassDefFoundError : org/opencv/core/Core - Java Servlet + OpenCV

java - 自定义 liferay portlet 作为贯穿门户元素

java - Spring Boot :org. springframework.beans.factory.UnsatisfiedDependencyException

java - 使用 Java AsyncHttpClient 库执行异步连接?

java - 如何衡量多线程应用程序中的代码性能?

liferay - 以编程方式将图像添加到 Liferay 文档库 6.1 版

liferay - <aui :script> block内的"A is not defined"