【问题标题】:ClassNotFoundException when deploying ear containing one ApplicationLifecycleListener部署包含一个 ApplicationLifecycleListener 的 ear 时出现 ClassNotFoundException
【发布时间】:2014-09-18 20:46:24
【问题描述】:

我有一个在 Netbeans 7.4 中定义的演示企业应用程序 (ear),带有一个 Java EE 模块 (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文件中复制和粘贴名称..

干杯彼得

[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>    

【问题讨论】:

    标签: deployment netbeans-7 classnotfoundexception ear weblogic12c


    【解决方案1】:

    通过添加 listener-uri 能够解决此问题。尽管该类在默认包中可用,但它必须显式添加到侦听器元素中。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-17
      • 1970-01-01
      • 1970-01-01
      • 2014-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-02
      相关资源
      最近更新 更多