我在Netbeans 7.4中定义了一个带有一个Java EE模块(战争)的演示企业应用程序(ear)。
当我将战争部署到Weblogic服务器时,部署成功并执行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:尚未部署模块。
战争包含在耳中......我在这里缺少什么? 包和类名在侦听器类中是正确的,甚至复制并粘贴war文件中的名称..
干杯彼得
[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>
答案 0 :(得分:1)
通过添加listener-uri可以解决此问题。虽然该类在默认包中可用,但必须将其显式添加到侦听器元素中。
<listener>
<listener-class>com.reddipped.sysstats.jmx.mbean.SysStatsMBeanLifeCycleListener</listener-class>
<listener-uri>SysStatsMBean.jar</listener-uri>
</listener>