portlet服务可以在servlet中使用吗?

时间:2012-12-06 13:40:23

标签: servlets liferay portlet

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

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

在Windows上运行Liferay 6.1.1 Tomcat(7)捆绑包,如果这会产生影响......

1 个答案:

答案 0 :(得分:4)

确保您的servlet使用Liferay的PortalDelegateServlet。否则,它将无法访问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>

不要忘记填写正确的init参数:

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

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

http://localhost:8080/delegate/do-something