2015-10-20 70 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; 
}