Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSF Mojarra没有在JBoss模块中初始化ManagedBeans_Java_Jboss_Jboss7.x - Fatal编程技术网

Java JSF Mojarra没有在JBoss模块中初始化ManagedBeans

Java JSF Mojarra没有在JBoss模块中初始化ManagedBeans,java,jboss,jboss7.x,Java,Jboss,Jboss7.x,我的问题(我认为)相当复杂 我正在使用JBoss7,并为Liferay faces创建了一个模块。在我的WAR文件中,我创建了一个jboss-deployment-structure.xml,在其中我用Mojarra和liferayfaces模块加载JSF模块。但在启动web应用程序时,Liferay Faces实现的ManagedBeans没有初始化,因此,我的应用程序崩溃。如果我将Liferay Faces JAR包含在我的WAR lib文件夹中,那么一切都可以正常工作,因此这是一个类加载问

我的问题(我认为)相当复杂

我正在使用JBoss7,并为Liferay faces创建了一个模块。在我的WAR文件中,我创建了一个jboss-deployment-structure.xml,在其中我用Mojarra和liferayfaces模块加载JSF模块。但在启动web应用程序时,Liferay Faces实现的ManagedBeans没有初始化,因此,我的应用程序崩溃。如果我将Liferay Faces JAR包含在我的WAR lib文件夹中,那么一切都可以正常工作,因此这是一个类加载问题

Liferay Faces modules.xml

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="com.liferay.faces">
    <resources>
        <resource-root path="liferay-faces-alloy.jar"/>
        <resource-root path="liferay-faces-bridge-api.jar"/>
        <resource-root path="liferay-faces-bridge-impl.jar"/>
        <resource-root path="liferay-faces-portal.jar"/>
        <resource-root path="liferay-faces-util.jar"/>
        <resource-root path="util-bridges.jar"/>
        <resource-root path="util-java.jar"/>
        <resource-root path="util-taglib.jar"/>
              <!-- Just for testing --->
        <resource-root path="AlexBean.jar"/>

    </resources>

    <dependencies>
        <module name="javax.api" />
        <module name="javax.enterprise.api" />
        <module name="javax.faces.api" />
        <module name="javax.inject.api" />

        <module name="com.liferay.portal" />

        <module name="com.sun.jsf-impl" />
    </dependencies>
</module>

jboss-deployment-structure.xml

[...]
<module name="com.liferay.faces" services="import" export="true" meta-inf="export"/>
<module name="com.sun.jsf-impl" />
[...]
[…]
[...]
为什么我知道Mojarra没有像应该的那样扫描和加载@ManagedBeans@ApplicationScoped?JAR文件AlexBean.JAR包含一个类,该类被注释为@ManagedBean和@ApplicationScoped。如果JAR文件放在WAR文件中,它就可以工作。如果我使用JBoss模块,它们就不是了,所以我假设Liferay Faces bean也没有加载,但它们是必需的

提前谢谢


致以最诚挚的问候-努克

为什么你认为你正在努力做的事情是可能的?假设?否则,请说明来源。在我看来,无论哪个bean需要由管理您的特定应用程序(可能是在同一实例中运行的多个应用程序)的JSF实例管理,您都需要将这些类作为特定应用程序归档的一部分进行部署。您是否为模块创建了jandex索引?否则注释将无法工作。Jandex索引??我从来没有听说过,谷歌也没有找到任何关于Jandex的信息。@Gimby不,这不是我的假设,而是Liferay的Neil Griffin的假设。他提到了Mujarra应用程序范围bean的自动加载,以测试Mojarra是否正确加载。下面是相应的论坛帖子