Ошибка развертывания уха, если Myfaces установлен как модуль на Widlfy - PullRequest
0 голосов
/ 29 мая 2020

Я установил myfaces 2.3.6 как модуль в Wildfly 19.1.0, как описано здесь . Если я проверю с помощью jboss-cli, что по умолчанию используются myfaces, я получу правильный (2.3.6).

  • Если я разверну военный файл, все в порядке.
  • Если я разверну "тот же" военный файл, интегрированный в ухо, что-то идет не так, и я получаю странные исключения, что некоторые из моих веб-классов (включенных в. \ WEB-INF \ classes) не найдены:

Вызвано: java .lang.ClassNotFoundException: com.mycompany.MyBeanClass из [Module \ "com.sun.jsf-impl: myfaces-2.3.6 \" версии 2.3.6 из локального загрузчика модуля ... ]

Точно такое же ухо со встроенными библиотеками myfaces и специальным параметром org.jboss.jbossfaces.WAR_BUNDLES_JSF_IMPL, установленным в сети. xml работает должным образом.

Я кое-что упустил ? Следует ли мне изменить jboss-deployment-structure. xml или файл МАНИФЕСТА?


Дополнительная информация. \ Com \ sun \ jsf-impl \ myfaces-2.3.6 \ module. xml

 <module xmlns="urn:jboss:module:1.8" name="com.sun.jsf-impl:myfaces-2.3.6">
    <properties>
        <property name="jboss.api" value="private"/>
    </properties>

    <dependencies>
        <module name="javax.faces.api:myfaces-2.3.6">
            <imports>
                <include path="META-INF/**"/>
            </imports>
        </module>
        <module name="javax.annotation.api"/>
        <module name="javax.servlet.api"/>
        <module name="javax.servlet.jsp.api"/>
        <module name="javax.websocket.api" />
        <module name="javax.validation.api"/>
        <module name="javax.json.api"/>
        <module name="javax.ejb.api"/>
        <module name="javax.xml.bind.api"/>
        <module name="org.glassfish.jakarta.el"/>
        <module name="javax.api"/>
        <module name="javax.servlet.jstl.api"/>
        <module name="org.apache.xerces" services="import"/>
        <module name="org.apache.xalan" services="import"/>
        <module name="org.jboss.weld.core"/>
        <module name="org.jboss.weld.spi"/>

        <!-- extra dependencies for MyFaces -->
        <module name="org.apache.commons.collections"/>
        <module name="org.apache.commons.codec"/>
        <module name="org.apache.commons.beanutils"/>
        <module name="org.apache.commons.digester"/>
    </dependencies>

    <resources>
        <resource-root path="myfaces-impl-2.3.6.jar"/>
    </resources>
</module>

. \ Javax \ faces \ api \ myfaces-2.3.6 \ module. xml

   <module xmlns="urn:jboss:module:1.8" name="javax.faces.api:myfaces-2.3.6">
    <dependencies>
        <module name="javax.enterprise.api" export="true"/>
        <module name="javax.servlet.api" export="true"/>
        <module name="javax.servlet.jsp.api" export="true"/>
        <module name="javax.servlet.jstl.api" export="true"/>
        <module name="javax.validation.api" export="true"/>
        <module name="org.glassfish.jakarta.el" export="true"/>
        <module name="javax.api"/>

        <!-- extra dependencies for MyFaces 1.1
        <module name="org.apache.commons.logging"/>
        <module name="org.apache.commons.el"/>
        <module name="org.apache.commons.lang"/> -->
    </dependencies>

    <resources>
        <resource-root path="myfaces-api-2.3.6.jar"/>
    </resources>
</module>

. \ Org \ jboss \ as \ jsf-injection \ myfaces-2.3 .6 \ module. xml

 <module xmlns="urn:jboss:module:1.5" name="org.jboss.as.jsf-injection" slot="myfaces-2.3.6">
    <properties>
        <property name="jboss.api" value="private"/>
    </properties>

    <resources>
        <resource-root path="wildfly-jsf-injection-19.1.0.Final.jar"/>
        <resource-root path="weld-jsf-3.1.3.Final.jar"/>
    </resources>

    <dependencies>
        <module name="com.sun.jsf-impl" slot="myfaces-2.3.6"/>
        <module name="javax.api"/>
        <module name="org.jboss.as.web-common"/>
        <module name="javax.servlet.api"/>
        <module name="org.jboss.as.ee"/>
        <module name="org.jboss.as.jsf"/>


        <module name="javax.enterprise.api"/>
        <module name="org.jboss.logging"/>
        <module name="org.jboss.weld.core"/>
        <module name="org.wildfly.security.elytron"/>


        <module name="javax.faces.api" slot="myfaces-2.3.6"/>
    </dependencies>
</module>

Файл МАНИФЕСТА (на ухо и на войне)

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.10.5
Created-By: 11.0.6+10-LTS (Azul Systems, Inc.)

jboss-deployment-structure. xml (на ухо и на войне)

<?xml version="1.0" encoding="UTF-8"?>


<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.1">
  <deployment>
    <dependencies>
    <module name="org.jboss.remote-naming" export="true" />

    <module name="org.infinispan.core" slot="ispn-9.4" services="export" export="true"/>
    <module name="org.infinispan.commons" slot="ispn-9.4" services="export" export="true"/>
    <module name="org.infinispan" slot="ispn-9.4" services="export" export="true"/>

    <module name="org.jboss.xnio" export="true" />
    <module name="org.jboss.remoting3" export="true" />
    <module name="org.apache.cxf"/>
        <module name="org.apache.cxf.impl"/>
    </dependencies>
  </deployment>
</jboss-deployment-structure>

веб. xml

...
<context-param>
    <param-name>org.jboss.jbossfaces.JSF_CONFIG_NAME</param-name>
    <param-value>myfaces-2.3.6</param-value>
</context-param>
...
...