glassfish v3类路径设置

时间:2010-08-18 12:17:16

标签: java-ee glassfish classpath glassfish-3

我正在开发glassfish v3上的j2ee app,它将远程调用部署在jboss 5 app服务器上的EJB。为此,我的应用程序必须在类路径中有jboss客户端jar。 我设法通过使用我的应用程序打包客户端jar文件来完成此操作,但是这需要大约10mb的大小,因此上传应用程序成为一个问题。

如何将这些罐放在别处,以便gf选择它们,这样我就不需要将它们放在我的应用程序中了?

4 个答案:

答案 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采用以下值:

  1. 配置
  2. 配置/
  3. 配置/ xxx.properties
  4. 尝试使用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目录中。重启后,它会自动被选中并可供同一域中的所有应用使用。