使jboss-client.jar可用于JBoss EAP 6中的WAR应用程序的技巧是什么?

时间:2016-12-20 01:26:35

标签: configuration jboss shared-libraries jboss-eap-6

在JBoss EAP 6.1中,有一个文件

JBOSS/bin/client/jboss-client.jar

它包含Web应用程序所需的所有客户端类。但是,当我们安装WAR文件时,它没有看到这些类可用。

要解决此问题,我们已在war文件WEB-INF/lib文件夹中包含此JAR的副本。这些副本是浪费,但更重要的是,这意味着我们必须为我们要安装的每个应用服务器提供不同的WAR文件。

是否有一个技巧允许WAR文件中的应用程序加载和使用此库中的类,而不必将其复制到应用程序的WEB-INF/lib文件夹中?或者,是否有一个地方我们可以复制这个jar,以便它可供所有WAR应用程序使用?

2 个答案:

答案 0 :(得分:1)

解决方案是将名为jboss-deployment-structure.xml的文件放在WEB-INF文件夹中。该文件的内容是:

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
  <deployment>
    <!-- Excluding conflicting JBoss-6 Implicit Modules so that jars bundled within war file is used. -->
    <exclusions>
        <module name="org.apache.log4j" />
        <module name="org.apache.commons.logging" />
    </exclusions>
    <!-- Defining additional dependencies for JMS usage in model API -->
    <dependencies>
        <module name="org.jboss.remote-naming" />
        <module name="org.hornetq" />
    </dependencies>
  </deployment>
</jboss-deployment-structure>

这使我们可以使用JBoss的JMS类,而无需安装应用程序附带的客户端库副本。似乎前段时间,程序员将应用程序移植到JBoss,并遇到了一个问题,即解决了问题。 (黑客入侵)将客户端库放入其中,但这是一个更好的解决方案。

答案 1 :(得分:0)