我有一个配置了 Jersey Rest API 的 webservlet。现在我必须将 servlet 转换为 liferay portlet。如何转换?就像我应该在 portlet.xml 中指定什么 portlet-class 一样?下面是我的 servlet 的 web.xml。
<servlet>
<servlet-name>charts</servlet-name>
<!--<servlet-class>javax.servlet.http.HttpServlet</servlet-class>-->
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.charts.api.service</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>charts</servlet-name>
<url-pattern>/charts</url-pattern>
<url-pattern>/charts/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
如何配置我的 portlet.xml 并在我的门户中使用休息服务?我还必须在 liferay jboss 服务器中部署 portlet。
最佳答案
为什么不在 liferay 中使用委托(delegate) servlet?
您可以创建一个 liferay portlet 并在 web.xml 中定义您的委托(delegate) servlet。
这里有一个定义示例:
<servlet>
<servlet-name>buscador</servlet-name>
<servlet-class>com.liferay.portal.kernel.servlet.PortalDelegateServlet</servlet-class>
<init-param>
<param-name>servlet-class</param-name>
<param-value>com.dummy.servlet.BuscadorServlet</param-value>
</init-param>
<init-param>
<param-name>sub-context</param-name>
<param-value>buscador</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
它将监听 http://yourliferay/delegate/buscador
希望对你有帮助
关于java - Jersey 与 liferay、Servlet 到 portlet 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37045679/