1

耳朵時,我在Netbeans的7.4有一個J2EE模塊(WAR)定義的演示企業應用程序(EAR)。ClassNotFoundException的部署包含一個ApplicationLifecycleListener

當我部署戰爭到WebLogic Server,部署成功並執行了ServletContextListener。

相同的war文件包含一個擴展了ApplicationLifecycleListener的類。這個類被定義爲weblogic-application.xml中的監聽器

<listener> 
    <listener-class>com.reddipped.sysstats.jmx.mbean.SysStatsMBeanLifeCycleListener</listener-class> 
</listener> 

在部署耳朵時,我得到以下異常;

部署/ home/developer/NetBeansProjects/SysStats/dist/wldeploy/SysStats 部署失敗。該消息是:拋出java.lang.ClassNotFoundException:com.reddipped.sysstats.jmx.mbean.SysStatsMBeanLifeCycleListener /home/developer/NetBeansProjects/SysStats/nbproject/build-impl.xml:301:該模塊尚未部署。

這場戰爭是包含在耳中......我在這裏失蹤了什麼? 包和類名都在監聽級正確的,甚至複製並從戰爭的文件粘貼名稱..

乾杯彼得

[更新2014年9月19日]

現在分手了項目在企業應用程序,Web應用程序和一個jar文件中。 部署時現在有一個weblogic.management.DeploymentException: classloader-structure element in weblogic-application.xml is referencing the module-uri SysStatsMBean.jar which does not exist in this application

當生成ear文件現在有以下結構。

SysStats.ear 
    - SysStats-war.war 
     - META-INF 
     - WEB-INF 
     - classes 
      - com 
      - reddipped 
       - sysstats 
       - model 
        - SystemInfo.class 
        - SystemInfoCollector.class 
        - SystemInfoCollectorExecutor.class 
    - SysStatsMBean.jar 
      - com 
      - reddipped 
       - sysstats 
       - model 
        - SysStats.class 
        - SysStatsMBeanLifeCycleListener.class 
        - SysStatsMXBean.class 
    - META-INF 
    application.xml 
    MANIFEST.MF 
    weblogic-application.xml 

的Weblogic-application.xml中包含

<?xml version="1.0" encoding="UTF-8"?> 
<weblogic-application xmlns="http://xmlns.oracle.com/weblogic/weblogic-application"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/javaee_5.xsd  http://xmlns.oracle.com/weblogic/weblogic-application http://xmlns.oracle.com/weblogic/weblogic- application/1.0/weblogic-application.xsd"> 
     <listener> 
     <listener- class>com.reddipped.sysstats.jmx.mbean.SysStatsMBeanLifeCycleListener</listener-class> 
    </listener> 

<classloader-structure> 
    <module-ref> 
     <module-uri>SysStats-war.war</module-uri> 
    </module-ref> 

    <module-ref> 
     <module-uri>SysStatsMBean.jar</module-uri> 
    </module-ref> 

</classloader-structure> 

</weblogic-application>  

回答

1

能夠通過添加監聽-URI來解決此問題。雖然該類在默認包中可用,但它必須顯式添加到偵聽器元素。

<listener> 
    <listener-class>com.reddipped.sysstats.jmx.mbean.SysStatsMBeanLifeCycleListener</listener-class> 
    <listener-uri>SysStatsMBean.jar</listener-uri> 
</listener> 
+0

試過WAR以同樣的方式和失敗。 – 2016-05-19 15:10:58

相關問題