ClassNotFoundException при развертывании уха, содержащего один ApplicationLifecycleListener

У меня есть демонстрационное корпоративное приложение (ухо), определенное в Netbeans 7.4 с одним модулем Java EE (война).

Когда я развертываю войну на сервере Weblogic, развертывание проходит успешно и выполняется ServletContextListener.

Тот же военный файл содержит класс, расширяющий 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: модуль не развернут.

Война включена в ухо... что я тут упускаю? Пакет и имя класса верны в классе слушателя, даже скопированы и вставлены имена из файла войны.

Ура Питер

[обновление 19.09.2014]

Теперь разделите проект на корпоративное приложение, веб-приложение и один файл 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

При сборке файл уха теперь имеет следующую структуру.

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>    

person pcvnes    schedule 18.09.2014    source источник


Ответы (1)


Мы смогли решить эту проблему, добавив listener-uri. Хотя класс доступен в пакете по умолчанию, его необходимо явно добавить в элемент прослушивателя.

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