Jboss 如何强制wildfly-8.2.1.Final从目录而不是war加载.class?

Jboss 如何强制wildfly-8.2.1.Final从目录而不是war加载.class?,jboss,wildfly,classloader,wildfly-8,war-filedeployment,Jboss,Wildfly,Classloader,Wildfly 8,War Filedeployment,我希望从给定目录加载.class文件,因此,我将编译后的文件放在/opt/wildfly-8.2.1.Final/modules/packagename/目录中,并且服务器从同一目录而不是war(WEB-INF/classes/packagename/)加载类。我自己没有尝试过这种方法,但您必须: 将/opt/wildfly-8.2.1.Final/modules/packagename/移动到 /opt/wildfly-8.2.1.Final/modules/custom classes/ma

我希望从给定目录加载.class文件,因此,我将编译后的文件放在/opt/wildfly-8.2.1.Final/modules/packagename/目录中,并且服务器从同一目录而不是war(WEB-INF/classes/packagename/)加载类。

我自己没有尝试过这种方法,但您必须:

  • /opt/wildfly-8.2.1.Final/modules/packagename/
    移动到
    /opt/wildfly-8.2.1.Final/modules/custom classes/main/packagename/
  • 将文件
    module.xml
    添加到
    /opt/wildfly-8.2.1.最终/模块/自定义类/main/
  • 将文件
    jboss deployment structure.xml
    添加到war中
  • 取消部署war,重新启动服务器,然后重新部署war
  • module.xml的内容

    <?xml version="1.0" encoding="UTF-8"?>
    <module xmlns="urn:jboss:module:1.3" name="custom-classes">
        <resources>
            <resource-root path="."/>
        </resources>
    </module>
    
    <?xml version="1.0" encoding="UTF-8"?>  
    <jboss-deployment-structure>  
        <deployment>  
             <dependencies>  
                  <module name="custom-classes" />    
            </dependencies>  
        </deployment>  
    </jboss-deployment-structure>
    
    编辑:如果您想向模块中添加JAR以及非JAR类,您不仅必须将JAR复制到
    /opt/wildfly-8.2.1.Final/modules/custom classes/main/
    ,还必须在
    module.xml
    中列出JAR,如下所示:

    <?xml version="1.0" encoding="UTF-8"?>
        <module xmlns="urn:jboss:module:1.3" name="custom-classes">
            <resources>
                <resource-root path="."/>
                <resource-root path="dependency1.jar"/>
                <resource-root path="dependency2.jar"/>
                <!-- and so on for other jars -->
            </resources>
        </module>
    
    
    
    资源:


    因此,您希望从
    /opt/wildfly-8.2.1.Final/modules/packagename/
    加载类,而不是从
    WEB-INF/classes/packagename/
    ?@Konrad Botor,非常感谢您的回复,但我在本地模块加载程序的“custom classes:main”模块中定义类com.demo.project.controller.LoginController时出错(查找器:本地模块查找器(根:/opt/wildfly-8.2.1.Final/modules,/opt/wildfly-8.2.1.Final/modules/system/layers/base)):java.lang.LinkageError:未能从本地模块加载器链接com/demo/project/controller/LoginController(模块“自定义类:main”)(查找器:本地模块查找器(根:/opt/wildfly-8.2.1.Final/modules,/opt/wildfly-8.2.1.Final/modules/system/layers/base))如
    在wildfly中加载类所述,模块中的类是在war中加载类之前加载的,因此如果模块中放置的类依赖于war中的类,那么模块将不会加载我已经放置了所有依赖项(jar)在模块内部(/opt/wildfly-8.2.1.Final/modules/custom classes/main/),但我遇到了相同的错误,您能建议一下吗?