2015-10-20 107 views
0

我已经阅读过,在我的 liferay-plugin-package.properties文件中指定required-deployment-contexts条目将在我的portlet WEB-INF/lib中执行一个自动的service-jar复制过程。required-deployment-contexts不能用于Liferay 6.2吗?

我不能得到这个工作:

我的Portlet和Portlet B.

我想要的Portlet B到消费portlet中的服务,而无需到服务JAR复制到我的服务器的ext/lib目录。我读了指定所需的部署,上下文这样会帮助我:

required-deployment-contexts=A-portlet 

嗯,至少对我来说doesn't工作。服务 - JAR文件不被复制,因此我的B-Portlet不能使用我的A-Portlet。

我正在使用Liferay 6.2 CE GA4 任何人的建议?

+0

的https:// WWW .liferay.com/web/meera.success/blog/-/blogs/sharing-liferay-service-layer-between-two-plugin-portlet-contexts –

+0

部署顺序也很重要。您需要先部署A-portlet,然后再部署使用A-portlet jar的第二个portlet。 –

+0

https://www.liferay.com/community/forums//message_boards/message/6018931 –

回答

2

你可以检查你的jar服务是否被称为“A-portlet-service.jar”。

事实上Liferay的副本罐子只有名字是“必需的部署,环境价值” -service.jar

您可以检查PluginsEnvironmentBuilder类代码:

protected List<String> getRequiredDeploymentContextsJars(
     File libDir, Properties properties) 
    throws Exception { 

    List<String> jars = new ArrayList<String>(); 

    String[] requiredDeploymentContexts = StringUtil.split(
     properties.getProperty("required-deployment-contexts")); 

    for (String requiredDeploymentContext : requiredDeploymentContexts) { 
     if (_fileUtil.exists(
       libDir.getCanonicalPath() + "/" + 
        requiredDeploymentContext + "-service.jar")) { 

      jars.add(requiredDeploymentContext + "-service.jar"); 
     } 
    } 

    return jars; 
}