我有一个在Netbeans 7.4中定义的演示企业应用程序(ear),带有一个Java EE模块(war) .
当我将war部署到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文件中的名称 .
干杯彼得
[更新09/19/2014]
现在将项目拆分为企业应用程序,Web应用程序和一个jar文件 . 在部署现在het a 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 回答
能够通过添加listener-uri来解决此问题 . 尽管该类在默认包中可用,但必须将其显式添加到listener元素中 .