2012-10-08 74 views
4

我們有一些與Java,VB有關的DLL。在Joss 4.X中,我們使用Application Server下的bin目錄。JBOSS 7.1.1中DLL的路徑設置

我們遷移到JBOSS 7.1.1,當我從bin目錄中刪除並將它們放置在C:\jboss-as-7.1.1.Final\modules\com\correction\main\libraries下的庫文件夾中時。

我得到這個例外

java.lang.UnsatisfiedLinkError: no xxxJavaWrapper in java.library.path 
java.library.path = C:\Program Files\Java\jdk1.6.0_24\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\apache-maven-3.0.4;C:\apache-maven-3.0.4\bin;C:\Python27;C:\Program Files\Java\jdk1.6.0_24;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem 
java.lang.UnsatisfiedLinkError: com.xxxJavaWrapperJNI.new_xxx()J 

module.xml

<?xml version="1.0" encoding="UTF-8"?> 
    <module xmlns="urn:jboss:module:1.0" name="com.correction"> 
     <resources> 
      <resource-root path="xxx.jar"/> 
      <resource-root path="xyz.jar"/> 
      <resource-root path="libraries"/> 
     </resources> 
     <dependencies> 
      <system export="true"> 
       <paths> 
        <path name="libraries"/> 
       </paths> 
       <exports> 
        <include-set> 
         <path name="libraries"/> 
        </include-set> 
       </exports> 
      </system> 
     </dependencies> 
    </module> 

但我把同一個DLL在bin文件夾,這是工作的罰款。 我想將它們放在模塊文件夾中,並從那裏設置路徑而不是bin,這樣我就可以將所有與應用程序相關的jar文件,屬性文件和dll文件放在一個地方以方便維護。

另外我想知道如何設置的TXT和屬性文件路徑中的JBoss 7.1.1

問候 作者Srini

回答

5

配置如下module.xml

<module xmlns="urn:jboss:module:1.1" name="com.correction"> 
    <resources> 
     <resource-root path="xxx.jar"/> 
     <resource-root path="xyz.jar"/> 
     <resource-root path="lib/win-x86_64"/> 
    </resources> 

    <dependencies> 
     <module name="sun.jdk"/> 
    </dependencies> 
</module> 

將DLL放入目錄lib/win-x86_64。檢查項目的另一個依賴關係。

在應用程序中創建文件JBoss的部署,structure.xmlWEB-INF,並把下面的內容:

<jboss-deployment-structure> 
    <deployment> 
    <dependencies> 
     <module name="com.correction"/> 
    </dependencies> 
    </deployment> 
</jboss-deployment-structure> 

這就是全部。

另一個問題:如何讓這些屬性文件可以被部署在JBoss 7上的應用程序訪問?

創建,你把你的屬性文件自定義模塊,並把JBoss的部署,structure.xml到您的應用程序存檔(WAR/EAR)使用該自定義模塊。

(在本例中使用的應用程序/ conf目錄)

mkdir -p $JBOSS_HOME/modules/app/conf/main/properties/ 

把你的屬性文件中$ JBOSS_HOME /模塊/應用/ conf目錄/主/屬性創建下$ JBOSS_HOME /模塊新的模塊目錄/

創建module.xmlhere $ JBOSS_HOME /模塊/應用/ conf目錄/主/ module.xml

<module xmlns="urn:jboss:module:1.1" name="app.conf"> 
    <resources> 
     <resource-root path="properties"/> 
    </resources> 
</module> 

把下面的jboss-deployment-structure。XMLWEB-INF

<?xml version="1.0" encoding="UTF-8"?> 
<jboss-deployment-structure> 
    <deployment> 
     <dependencies> 
      <module name="app.conf" /> 
    </dependencies> 
    </deployment> 
</jboss-deployment-structure> 

然後你就可以訪問使用以下導出代碼的屬性文件(例如假設你在$ JBOSS_HOME /模塊/應用/ conf目錄/主/性能有 example.propertiesfile/

Thread.currentThread().getContextClassLoader().getResource("example.properties"); 

PS:我使用JBoss應用服務器7.1.2(EAP的JBoss 6)

問候 毛Magnani