【问题标题】:adding jars as deployment in WildFly 10在 WildFly 10 中添加 jar 作为部署
【发布时间】:2016-12-31 12:20:42
【问题描述】:

有没有办法,我们可以像在weblogic 服务器中那样在WildFly 10 中将jar 部署为库/部署?或者我们可以将罐子放在服务器的任何文件夹中并将这些依赖项定义为provided

【问题讨论】:

    标签: java spring web-applications deployment wildfly-10


    【解决方案1】:

    我在WildFly 10 服务器上部署jars 而不是制作部分war 文件的方法定义如下:

    1) 把你所有的罐子放在wildfly\modules\system\layers\base\com\abcProject\main 并放置一个名为module.xml 的文件,内容如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <module xmlns="urn:jboss:module:1.3" name="com.abcProject">
    <resources>
        <resource-root path="aspectjrt-1.6.8.jar"/>
        <resource-root path="aspectjweaver-1.6.8.jar"/>
        <resource-root path="aopalliance-1.0.jar"/>
        <resource-root path="guava-18.0.jar"/>
    </resources>
    
    <dependencies>
        <module name="javaee.api"/>
        <module name="org.apache.commons.logging"/>
        <module name="org.jboss.vfs"/>
    </dependencies>
    

    其中resources 是您的abcProject/main 文件夹中存在的所有jarsdependencies 是您的jars 所依赖并存在于wildfly\modules\system\layers\base 文件夹中的所有jars

    2) 然后在您的项目中在WEB-INF 文件夹中添加一个名为jboss-deployment-structure.xml 的文件,其内容如下:

    <?xml version="1.0"?>
    <jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <deployment>
        <dependencies>
            <module name="com.abcProject" >
                <imports>
                    <include path="META-INF**"/>
                    <include path="org**"/>
                </imports>
            </module>
        </dependencies>
    </deployment>
    

    3) 现在将dependencies 中的dependencies 设置为provided,您已将jars 放在abcProject/main 文件夹中。

    现在运行您的项目,它将从服务器获取所有jars,并且在编译期间不会包含在war 文件中。

    【讨论】:

    • 我们确定这是一个最佳答案吗?您可以直接在部署文件夹中定义模块。我认为将模块添加到 wildfly 系统文件夹不是最佳选择,这类似于将 jars 添加到 JRE 的 lib 文件夹中。
    • 但是你可以在独立部署文件夹中定义多个模块吗?你能给我一个它的实施链接吗?谢谢。
    【解决方案2】:

    要将外部 jars 添加为 Jboss/Wildfly 中的“库”,您可以将其定义为安装中的模块,或将其添加到现有模块中。

    有关如何在 Wildfly 中添加模块的更多详细信息,请参阅link

    【讨论】:

    • 好的,但是我会删除所有依赖项,如 spring 等,还是使用提供的范围编写它?
    • 我其实是想把我所有的jar包做一个war文件部署到服务器上,可以吗?
    • 是的,您可以通过在 POM 中指定提供的范围来从 EAR 中删除依赖项。我不确定全局战争文件,但是您可以在一个 jboss 模块中指定多个 jar (stackoverflow.com/questions/14745978/…)
    • 好的@Leo 谢谢。我也会尝试这种方法,并会搜索 war 模块。
    猜你喜欢
    • 2017-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-08
    • 1970-01-01
    • 2017-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多