【问题标题】:glassfish v3 classpath settingsglassfish v3 类路径设置
【发布时间】:2010-08-18 12:17:15
【问题描述】:

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

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

【问题讨论】:

    标签: jakarta-ee glassfish classpath glassfish-3


    【解决方案1】:

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

    【讨论】:

    • 我可以把它们放在其他目录中,然后告诉 gf 进去看看吗?
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      对于 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. config/xxx.properties

      对 classpath-suffix 尝试同样的方法也没有帮助。

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

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

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

      【讨论】:

        【解决方案4】:

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

        以逗号分隔的库 JAR 文件列表。指定库 JAR 文件的相对或绝对路径。指定相对路径 相对于 instance-root/lib/applibs。图书馆已建成 可按指定顺序提供给应用程序。

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

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

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

        【讨论】:

        • 有人可以提供此信息来源的链接吗?我想阅读更多。例如,我可以使用 -libraries 来指向目录而不是 jar 吗?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-12
        • 2011-04-20
        • 1970-01-01
        • 1970-01-01
        • 2018-12-09
        • 1970-01-01
        相关资源
        最近更新 更多