2

(如果是的话,怎么做?)

我有一个 Liferay portlet,它是使用为其他 portlet 提供服务的服务构建器构建的,我想知道是否可以在我的 servlet 中使用相同的 jar。到目前为止,我还没有成功。我尝试创建一个 portlet 并尝试从该 portlet 调用相同的服务,但这也不起作用。因此,我必须在 portlet 和 servlet 的配置中遗漏一些允许使用这些服务的东西。我错过了什么?

如果有不同的话,在 Windows 上运行 Liferay 6.1.1 Tomcat (7) 包...

4

1 回答 1

4

确保您的 servlet 使用PortalDelegateServletLiferay。否则,它将无法访问 Liferay 服务 API(最终由服务构建器生成的类的类使用)。

<?xml version="1.0" encoding="UTF-8"?>
<web-app ...>
    ...
    <servlet>
        <servlet-name>my-servlet</servlet-name>
        <servlet-class>com.liferay.portal.kernel.servlet.PortalDelegateServlet</servlet-class>
        <init-param>
            <param-name>servlet-class</param-name>
            <param-value>org.example.YourOwnServlet</param-value>
        </init-param>
        <init-param>
            <param-name>sub-context</param-name>
            <param-value>do-something</param-value>
        </init-param>
    <servlet>
</web-app>

不要忘记填写正确的初始化参数:

  • servlet-class是代表你的 servlet 的类
  • sub-context是你的 servlet 应该监听的子上下文

部署后,您的 servlet 将可通过以下 URL 访问:

http://localhost:8080/delegate/do-something
于 2013-04-26T13:59:23.717 回答