我有几个使用外部库的OSGI包和WAR包:
<dependencies>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.core</artifactId>
<version>4.2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.compendium</artifactId>
<version>4.2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>osgi-cdi-api</artifactId>
<version>3.1-b41</version>
<type>jar</type>
<scope>provided</scope>
</dependency>
不是将库构建到每个OSGI包和WAR包中,而是可以将这些库复制到Glassfish服务器的/ modules目录中.我想可以只使用一个副本而没有任何问题?
编辑
我发现可以使用以下命令将这些库部署为Glassfish中的模块:
[root @ Testserver bin] #sh asadmin add-library /opt/primefaces.jar
但是,例如在一个简单的WAR包中我需要修改以便使用Glassfish模块?我认为WAR包必须配置为使用外部库吗?
最佳答案 我不认为问题出在您的war文件中,但确保您可以检查MANIFEST文件.如果Import-Package标头正确,则您无法从war文件中执行任何操作.如果是这种情况,必须有一种方法可以说服Glassfish使一个模块对webapp可见(我不是Glassfish专家,对不起).
否则,请修复Import-Package标头(您现在可以手动执行此操作).