jboss-deployment-structure.xml 和 global-module wildfly 20
Posted
技术标签:
【中文标题】jboss-deployment-structure.xml 和 global-module wildfly 20【英文标题】:jboss-deployment-structure.xml and global-module wildfly 20 【发布时间】:2020-12-01 07:10:35 【问题描述】:我一直在寻找wildfly 20和jboss-deployment-structure.xml的全局模块之间的不同之处,我在我的服务器中定义了几个模块然后我构建了一个没有maven设置我的onw依赖项的项目,然后当我在独立文件中声明的全局项目模块都可以正常工作,但是当我在独立文件中对此进行评论,并在子部署 jds.xml 中声明它时,该项目不适用于 tag-tiles 或 struts 标记,这会抛出 org.apache.tiles.request .render.CannotRenderException: ServletException 包括路径 '/WEB-INF/jsp/tl/bas.jsp'。
jboss-deployment-structure.xml (version.1.0)
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<!-- <deployment>
<exclusions>
<module name="org.apache.log4j" />
</exclusions>
</deployment> -->
<sub-deployment name="project.war">
<dependencies>
<module name="own.org.apache.tiles" />
<module name="own.org.apache.struts2" />
<module name="own.org.apache.commons" />
<module name="own.org.apache.logging" />
<module name="own.freemarker" />
<module name="own.javassist" />
<module name="own.ognl" />
</dependencies>
<!-- <exclusions>
<module name="org.apache.log4j" />
</exclusions> -->
</sub-deployment>
</jboss-deployment-structure>
jboss-deployment-structure.xml (version.1.1)
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<dependencies>
<module name="own.org.apache.tiles" />
<module name="own.org.apache.struts2" />
<module name="own.org.apache.commons" />
<module name="own.org.apache.logging" />
<module name="own.freemarker" />
<module name="own.javassist" />
<module name="own.ognl" />
</dependencies>
<exclusions>
<module name="org.apache.log4j" />
</exclusions>
</deployment>
<sub-deployment name="project.war">
<dependencies>
<module name="own.org.apache.tiles" />
<module name="own.org.apache.struts2" />
<module name="own.org.apache.commons" />
<module name="own.org.apache.logging" />
<module name="own.freemarker" />
<module name="own.javassist" />
<module name="own.ognl" />
</dependencies>
<exclusions>
<module name="org.apache.log4j" />
</exclusions>
</sub-deployment>
</jboss-deployment-structure>
sn-p 代码standalone.xml
<subsystem xmlns="urn:jboss:domain:ee:5.0">
<global-modules>
<module name="own.org.apache.struts2" slot="main"/>
<module name="own.org.apache.commons" slot="main"/>
<module name="own.org.apache.logging" slot="main"/>
<module name="own.freemarker" slot="main"/>
<module name="own.javassist" slot="main"/>
<module name="own.ognl" slot="main"/>
<module name="own.org.apache.tiles" slot="main"/>
</global-modules>
<subsystem/>
服务器日志
2020-08-12 09:25:44,414 INFO [stdout] (default task-1) org.apache.tiles.request.render.CannotRenderException: ServletException including path '/WEB-INF/jsp/til/bf.jsp'.
...
2020-08-12 09:25:44,418 INFO [stdout] (default task-1) Caused by: java.io.IOException: ServletException including path '/WEB-INF/jsp/til/bf.jsp'.
...
2020-08-12 09:25:44,418 INFO [stdout] (default task-1) at org.apache.tiles.request.servlet.ServletUtil.wrapServletException(ServletUtil.java:63) ~[tiles-request-servlet-1.0.7.jar!/:1.0.7]
...
2020-08-12 09:25:44,418 INFO [stdout] (default task-1) Caused by: org.apache.jasper.JasperException: JBWEB004113: The absolute uri: http://tiles.apache.org/tags-tiles cannot be resolved in either web.xml or the jar files deployed with this application
...
2020-08-12 09:25:44,421 INFO [stdout] (default task-1) 2020-08-12 09:25:44,420 DEBUG [default task-1] dispatcher.DefaultDispatcherErrorHandler (DefaultDispatcherErrorHandler.java:108) - Exception occurred during processing request: ServletException including path '/WEB-INF/jsp/til/bf.jsp'.
...
2020-08-12 09:25:44,421 INFO [stdout] (default task-1) org.apache.tiles.request.render.CannotRenderException: ServletException including path '/WEB-INF/jsp/til/bf.jsp'.2020-08-12 09:25:44,421 INFO [stdout] (default task-1) org.apache.tiles.request.render.CannotRenderException: ServletException including path '/WEB-INF/jsp/til/bf.jsp'.
...
2020-08-12 09:25:44,424 INFO [stdout] (default task-1) Caused by: java.io.IOException: ServletException including path '/WEB-INF/jsp/til/bf.jsp'.
...
2020-08-12 09:25:44,424 INFO [stdout] (default task-1) Caused by: org.apache.jasper.JasperException: JBWEB004113: The absolute uri: http://tiles.apache.org/tags-tiles cannot be resolved in either web.xml or the jar files deployed with this application
问题是,为什么 jboss-deployment-structure.xml 不能在独立的情况下处理磁贴设置和全局模块的依赖项是???
PD:项目在 jboss-deployment-structure.xml 或 global-modules 设置下成功部署,但瓷砖标签不适用于 jboss-deployment-structure.xml 设置依赖项
【问题讨论】:
Jboss 与其他应用服务器不同。要查看错误,您应该查看 server.log。然后在这里发布。没有错误日志就很难理解问题。 @RomanC 添加 server.log 行,谢谢 您是否在 EAR 中包含需要任何模块的任何 JAR?使用全局模块将这些模块添加到所有部署中,在jboss-deployment-structure.xml
中,您只是将这些模块添加到您的 WAR 中。
嗨@JamesR.Perkins,我做了三个设置。只有 jboss-deployment-structure.xml 在部署标签内带有调用模块。第二。只有 jboss-deployment-structure.xml 在子部署标签内调用模块,即我发布的 j-d-s.xml 和之前的任何设置以及 global-modules 声明的第三个。在三种情况下,部署是成功的,但请求磁贴只能在我所说的第三种设置中工作......
如果您要部署 EAR,则需要定义需要这些依赖项的每个子部署。这可能解释了为什么全局模块可以工作,因为依赖项被添加到所有部署中。这意味着 EAR 本身,以及它的所有子部署。
【参考方案1】:
我的详细问题是由于某种原因,他们从模块调用的某些 jar 文件在项目部署中不可用。然后,我做了一个简单的修改 jboss-deployment-structure.xml ,一切都很好。
我添加了 meta-inf="export" 属性。
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<!-- <deployment>
<exclusions>
<module name="org.apache.log4j" />
</exclusions>
</deployment> -->
<sub-deployment name="project.war">
<dependencies>
<module name="own.org.apache.tiles" meta-inf="export" />
<module name="own.org.apache.struts2" meta-inf="export" />
<module name="own.org.apache.commons" meta-inf="export" />
<module name="own.org.apache.logging" meta-inf="export" />
<module name="own.freemarker" meta-inf="export" />
<module name="own.javassist" meta-inf="export" />
<module name="own.ognl" meta-inf="export" />
</dependencies>
<!-- <exclusions>
<module name="org.apache.log4j" />
</exclusions> -->
</sub-deployment>
</jboss-deployment-structure>
【讨论】:
以上是关于jboss-deployment-structure.xml 和 global-module wildfly 20的主要内容,如果未能解决你的问题,请参考以下文章
有一个 jboss-deployment-structure.xml 与公共库中的依赖项