2015-09-09 130 views
0

我試圖在Wildfly 9.0.1.Final上部署基於struts的web應用程序。Wildfly 9.0.1.Final:EAR部署失敗

我將部署爲包含.war/.jar(EJB)文件的.ear文件。

但它在部署期間給我一個錯誤。

錯誤堆棧跟蹤:

Failed to define class AuditMDB in Module "deployment.webapp.ear.EJB.jar:main" from Service Module Loader: java.lang.LinkageError: Failed to link AuditMDB (Module "deployment.webapp.ear.EJB.jar:main" from Service Module Loader) 
    at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:437) 
    at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:269) 
    at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:77) 
    at org.jboss.modules.Module.loadModuleClass(Module.java:560) 
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:197) 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:455) 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:404) 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:385) 
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:130) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:270) 
    at org.jboss.as.server.deployment.reflect.DeploymentClassIndex.classIndex(DeploymentClassIndex.java:54) 
    at org.jboss.as.ejb3.deployment.processors.dd.DeploymentDescriptorMethodProcessor.handleSessionBean(DeploymentDescriptorMethodProcessor.java:118) 
    at org.jboss.as.ejb3.deployment.processors.dd.DeploymentDescriptorMethodProcessor.deploy(DeploymentDescriptorMethodProcessor.java:73) 
    at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:156) 
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948) 
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: java.lang.NoClassDefFoundError: javax/jms/MessageListener 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800) 
    at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:353) 
    at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:432) 
    ... 19 more 
Caused by: java.lang.ClassNotFoundException: javax.jms.MessageListener from [Module "deployment.webapp.ear.EJB.jar:main" from Service Module Loader] 
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:205) 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:455) 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:404) 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:385) 
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:130) 
    ... 23 more 

請幫

+0

@ JamesR.Perkins請幫忙 –

+0

您是否試過從'$ JBOSS_HOME/bin/standalone.sh -c standalone-full.xml'開始?我不認爲JMS是在默認的standalone.xml配置中添加的。 –

+0

@ JamesR.Perkins我嘗試從standalone-full.xml開始,現在我收到有關「無法創建初始查找:javax.naming.NameNotFoundException:datasources/WEBFDMS」的錯誤。我的dbLoopup字符串是java:jboss/datasources/WEBFDMS。我還想知道,我是否需要像上面提到的那樣始終啓動服務器,或者它只是一次性活動。我的意思是說,下次可以啓動它,就像$ JBOSS_HOME/bin/standalone.sh –

回答

0

你必須確保你的數據源定義。在你獨立,full.xml你需要包括定義,喜歡的東西:

<datasource jndi-name="java:datasources/WEBFDMS" pool-name="WEBFDMS" enabled="true" use-java-context="true"> 
    <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url> 
    <driver>h2</driver> 
    <security> 
     <user-name>sa</user-name> 
     <password>sa</password> 
    </security> 
</datasource> 

「的java:數據源/ WEBFDMS」 可能是 「的Java:JBoss的/數據源/ WEBFDMS」

當然,這個數據源定義只會創建一個內存數據源。爲了連接到正在運行的數據庫(mysql,oracle等),您將不得不對其進行配置。

+0

如何連接到正在運行的數據庫。那麼$ JBOSS_HOME/bin/standalone.sh -c standalone-full.xml呢? –

+0

-c standalone-full.xml只是說要加載它作爲你的配置文件。但該文件需要爲您的應用程序進行配置。恐怕這不是一步步正確的野蠻論壇,從閱讀文檔開始:https://docs.jboss.org/author/display/WFLY8/DataSource+configuration – teacurran

+0

好的。我會經歷這個 –