我正在开发glassfish v3上的j2ee app,它将远程调用部署在jboss 5 app服务器上的EJB。为此,我的应用程序必须在类路径中有jboss客户端jar。 我设法通过使用我的应用程序打包客户端jar文件来完成此操作,但是这需要大约10mb的大小,因此上传应用程序成为一个问题。
如何将这些罐放在别处,以便gf选择它们,这样我就不需要将它们放在我的应用程序中了?
答案 0 :(得分:1)
如有必要,您可以将它们放在服务器的类路径中。转到域的lib目录。
答案 1 :(得分:1)
在Glassfish域的domain.xml中,您可以使用java-config标记的classpath-suffix属性指向应该属于该特定域的Glassfish类路径的位置。
答案 2 :(得分:1)
对于jar来说这没关系,但对于属性文件来说,这是其他的东西。 除非你把它们放在WAR中(这意味着你不能在没有完全重新部署的情况下更新它们),它往往会更难。
我试图将xxx.properties放在config文件夹&调整以下domain.xml行
<java-config debug-options="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9009" system-classpath="${com.sun.aas.instanceRoot}/MY_VALUE" classpath-suffix="">
...
</java-config>
MY_VALUE采用以下值:
尝试使用classpath-suffix也没有用。
请求web-app显示带有以下行的类路径:
String path = System.getProperty("java.class.path");
LOG.info("Classpath is : '" + path + "'.");
确实显示值已被选中......但是属性文件永远无法从ClassLoader.getResourceAsInputStream()
访问答案 3 :(得分:0)
选项1 :您可以使用libraries选项在GF3部署期间处理此问题。这就是GF3部署屏幕所说的。
以逗号分隔的库JAR文件列表。指定库JAR 文件的相对或绝对路径。指定相对路径 相对于instance-root / lib / applibs。图书馆是制作的 按指定的顺序提供给应用程序。
如果您使用命令行进行部署,请使用--libraries选项和asadmin命令。
这可能不是最好的选择,因为每次取消部署时都需要处理它。但是,在重新部署的情况下,应保留此设置。
选项2 :将它们放在Glassfish domainname / lib目录中。重启后,它会自动被选中并可供同一域中的所有应用使用。