(如果是的话,怎么样?)
我有一个使用服务构建器构建的Liferay portlet,它为其他portlet提供服务,我想知道我是否可以在servlet中使用相同的jar。到目前为止,我还没有成功。我尝试创建一个portlet并尝试从该portlet调用相同的服务,但这也没有用。所以我必须在portlet和servlet的配置中遗漏一些东西,允许使用这些服务。我错过了什么?
在Windows上运行Liferay 6.1.1 Tomcat(7)捆绑包,如果这会产生影响......
答案 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