Glassfish应用程序不使用maven库(gf-client)

时间:2012-04-11 23:29:52

标签: maven-2 glassfish jms jndi

对于学校作业,我收到了使用JNDI的Netbeans项目和使用Glassfish的JMS(3个开源版本)。此应用程序使用的所有Glassfish库都由绝对路径引用,所有其他库(在“lib”文件夹中)由相对路径引用。

由于我的小组正在使用版本控制系统,因此“lib”文件夹包含在存储库中。这很好,因为它是一个小项目。但是Glassfish库存在问题,因为我是Linux用户,其他人是Windows用户。我们通过让Netbeans处理库路径来解决这个问题。

所选择的解决方案“有效”,但不是最佳解决方案。我认为Maven会是一个更好的解决方案。

但是“gf-client”库存在问题。每当我使用Maven“gf-client”时,应用程序都会抛出异常:

javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial

两个库都有“3.1.2”作为版本。库的结构看起来相同,也都是MANIFEST.MF文件。但是两个文件的大小和md5sum不相等。

我已经尝试了所有可以在默认Maven存储库中找到的“gf-client”库,但都没有。没有其他图书馆给我带来麻烦。

1 个答案:

答案 0 :(得分:9)

能够通过将其添加到我的pom.xml来解决它:

<dependency>
    <groupId>org.glassfish.main.extras</groupId>
    <artifactId>glassfish-embedded-all</artifactId>
    <version>3.1.2</version>
</dependency>

gf-client jar指的是其他jar中的类。它失踪的第一堂课可能是java.naming.factory.initial。但在修好之后,它仍然需要一堆其他类。对我来说最快的方法是添加glassfish-embedded-all依赖。