確保您的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>
不要忘記填寫正確的初始化參數:
servlet-class
是代表你的servlet
sub-context
類是你的servlet應該聽
子上下文部署後,您的servlet將可通過以下URL訪問:
http://localhost:8080/delegate/do-something
這可能是值得檢查https://www.liferay.com/web/antonio.junior/blog/-/blogs/12168124(確保在你的portlets service.xml中,實體的遠程服務集爲true) – 2012-12-06 14:33:12
謝謝Rhod。 Web Services並不完全是我期待的方向。在我看來,如果您開發大量代表完整應用程序的portlet,則不需要複製每個portlet中所需的服務。您所需要的只是一個通用服務portlet,它將使這些服務可供其他portlet使用。但是我懷疑你不得不將這些服務公開爲Web服務來使它們可用。是不是可以放棄服務jar到你的lib文件夾並使用暴露的類? –