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

Servlets portlet服务可以在servlet中使用吗?,servlets,liferay,portlet,Servlets,Liferay,Portlet,如果是,怎么做 我有一个liferayportlet,它是使用servicebuilder构建的,它向其他portlet提供服务,我想知道是否可以在我的servlet中使用相同的jar。到目前为止,我还没有成功。我尝试创建一个portlet,并尝试从该portlet调用相同的服务,但也没有成功。因此,我必须在允许使用这些服务的portlet和servlet的配置中缺少一些东西。我错过了什么 在Windows上运行Liferay 6.1.1 Tomcat 7 bundle,如果这有什么不同…请确保

如果是,怎么做

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


在Windows上运行Liferay 6.1.1 Tomcat 7 bundle,如果这有什么不同…

请确保您的servlet使用Liferay的PortalLegateServlet。否则,它将无法访问Liferay服务API,该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使用Liferay的PortalLegateServlet。否则,它将无法访问Liferay服务API,该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>

也许值得检查一下,确保在您的portlets service.xml中实体的远程服务设置为trued。Web服务并不是我想要的方向。在我看来,如果您开发了大量表示完整应用程序的portlet,您就不需要复制每个portlet中所需的服务。您所需要的只是一个通用服务portlet,它将使这些服务对其他portlet可用。但我怀疑您是否必须将这些服务公开为web服务才能使其可用。难道不可能将services jar放到lib文件夹中并使用其中公开的类吗?可能值得检查一下,确保在portlet service.xml中实体的远程服务设置为trued。Web服务并不是我想要的方向。在我看来,如果您开发了大量表示完整应用程序的portlet,您就不需要复制每个portlet中所需的服务。您所需要的只是一个通用服务portlet,它将使这些服务对其他portlet可用。但我怀疑您是否必须将这些服务公开为web服务才能使其可用。难道不可能将服务jar放入lib文件夹并使用其中公开的类吗?您有使用PortalLegateServlet的完整示例吗?您有使用PortalLegateServlet的完整示例吗?