5

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

我怎样才能把这些罐子放在别处,以便 gf 把它们捡起来,这样我就不需要把它们放在我的应用程序中了?

4

4 回答 4

1

如有必要,您可以将它们放在服务器的类路径中。转到域的 lib 目录。

于 2010-08-18T12:19:02.797 回答
1

在 Glassfish 域的 domain.xml 中,您可以使用 java-config 标记的 classpath-suffix 属性来指向应该是该特定域的 Glassfish 类路径的一部分的位置。

于 2010-08-24T12:07:11.193 回答
1

对于 jar 来说,这是可以的,但对于属性文件,这是另一回事。除非您将它们放在 WAR 中,否则它往往会更难(这意味着您无法在没有完全重新部署的情况下更新它们)。

我试图将 xxx.properties 放在配置文件夹中并调整以下 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

对 classpath-suffix 进行同样的尝试也无济于事。

使用以下行请求 web-app 显示类路径:

String path = System.getProperty("java.class.path");
LOG.info("Classpath is : '" + path + "'.");

确实表明这些值已被拾取......但永远无法从 ClassLoader.getResourceAsInputStream() 访问属性文件

于 2013-08-05T17:10:54.333 回答
0

选项 1:您可以在 GF3 部署期间使用库选项处理此问题。这就是 GF3 部署屏幕所说的。

以逗号分隔的库 JAR 文件列表。通过它们的相对或绝对路径指定库 JAR 文件。指定相对于 instance-root/lib/applibs 的相对路径。这些库按指定的顺序提供给应用程序。

如果您使用命令行进行部署,请使用 --libraries 选项和 asadmin 命令。

这可能不是最好的选择,因为每次取消部署时您都需要处理它。但是,在重新部署的情况下,应保留此设置。

选项 2:将它们放在 Glassfish 域名/lib 目录中。重新启动后,它将被自动拾取并可供您在同一域中的所有应用程序使用。

于 2012-09-05T18:44:53.920 回答