我正在部署使用EJB的应用程序。我写了一个EJB和一个java独立客户端来连接。一切正常。 但是,我有一个关于JAR依赖关系的问题。我正在使用Netbeans 7.1.2和Glassfish 3.1.2,我添加到客户端应用程序的jar是:
我从这里读到:http://glassfish.java.net/javaee5/ejb/EJB_FAQ.html#StandaloneRemoteEJB,而不是gf-client.jar拥有很多依赖项。看了里面的MANIFEST文件后,我看到它提供了很多亲戚路径到其他罐子然后,我必须直接在glassfish安装路径中引用这个jar。如果我想将此应用程序分发给客户端,使用该应用程序(客户端)的所有客户端都需要下载Glassfish,这是不可接受的。
所以我的问题是,我该如何处理?有没有办法避免直接从glassfish安装路径引用gf-client.jar?
答案 0 :(得分:1)
谢谢,
我通过将这些罐子添加到我的项目中解决了我的问题:
auto-depends.jar
部署-common.jar
与GlassFish CORBA的内部api.jar文件
内部api.jar文件
管理-api.jar文件
豆validator.jar
dol.jar
glassfish-corba-newtimer.jar
javax.ejb.jar
ORB-connector.jar
共util.jar
EJB-container.jar
glassfish-corba-omgapi.jar
javax.jms.jar
ORB-iiop.jar
配置-api.jar文件
ejb.security.jar
与GlassFish CORBA的orb.jar
javax.resource.jar
security.jar
配置-types.jar
与GlassFish api.jar文件
glassfish-corba-orbgeneric.jar
javax.servlet.jar
SSL-impl.jar中
config.jar
与GlassFish CORBA的asm.jar
与GlassFish naming.jar
javax.transaction.jar
交易内部api.jar文件
connectors-internal-api.jar
glassfish-corba-codegen.jar
gmbal.jar
jta.jar
容器common.jar
glassfish-corba-csiv2-idl.jar
hk2-core.jar
kernel.jar
我不认为在某些情况下需要所有的罐子。希望它会有所帮助。
答案 1 :(得分:1)
在Application Development Guide中找到了这个:
将 as-install / lib / gf-client.jar 文件复制到客户端计算机并将其包含在客户端的类路径中。
gf-client.jar文件引用了GlassFish Server JAR文件 MANIFEST.MF文件。如果客户端计算机上没有安装GlassFish Server,则还必须将 as-install / modules 目录复制到客户端计算机并保持其相对于客户端计算机的目录结构。 as-install /lib/gf-client.jar文件。或者您可以使用package-appclient 脚本;请参阅使用package-appclient脚本。
答案 2 :(得分:0)
您可能需要考虑使用Java Web Start,并让GlassFish自行决定客户端本地ACC必须使用的依赖项。这些将由客户自动下载。
我写了一篇关于如何编写通过Java Web Start启动的JavaFX应用程序的教程,并使用依赖注入代理服务器端资源: