比如:该工程的上下文为dhh
1、将myeclipse工程的webcontent目录直接复制到 jboss的发布目录:jboss\server\default\deploy\
2、将webcontent 文件名改成dhh.war
3、如果直接这样放进去,重启JBOSS服务,会发现你的工程 跑不起来,在日志文件(jboss\server\default\log)中可以看见很多异常出现 ; 本人研究不深,不过网上稍微查询了一下,JBOSS的类,JAR加载顺序的问题;JBOSS本身有很多基础包支持,会发现跟我们发布的项目工程 \jboss\server\default\deploy\dhh.war\WEB-INF\lib 中的JAR文件,有居多不兼容和冲突的现象;如果哥们厉害,可以一一排除。其实还有更加简单的方法,就是 只加载我们自己工程的项目JAR包
4、解决方法: 目录:jboss\server\default\deploy\dhh.war\WEB-INF 下准备好2个XML文件: jboss-classloading.xml 和 jboss-web.xml
jboss-web.xml 文件的作用和配置,在这里就不罗嗦了,客官可以直接百度
<!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 5.0//EN" "http://www.jboss.org/j2ee/dtd/jboss-web_5_0.dtd">
<jboss-web>
<!-- For load class independently -->
<class-loading java2ClassLoadingCompliance='true'>
<loader-repository>
com.example:archive=unique-archive-name
<loader-repository-config>
java2ParentDelegaton=true
</loader-repository-config>
</loader-repository>
</class-loading>
<!-- For context -->
<context-root>/dhh</context-root>
<!-- For session copy -->
<replication-config>
<cache-name>standard-session-cache</cache-name>
</replication-config>
<!-- For session time -->
<max-active-sessions>30</max-active-sessions>
<passivation-config>
<use-session-passivation>true</use-session-passivation>
<passivation-min-idle-time>60</passivation-min-idle-time>
<passivation-max-idle-time>600</passivation-max-idle-time>
</passivation-config>
</jboss-web>
jboss-classloading.xml 文件的作用和配置,在这里就不罗嗦了,客官可以直接百度
<?xml version="1.0" encoding="UTF-8"?>
<classloading xmlns="urn:jboss:classloading:1.0"
name="dhh.war"
domain="myweb_domain"
parent-domain="DefaultDomain"
export-all="NON_EMPTY"
import-all="true"
parent-first="true">
</classloading>
以上两个文件的配置都非常重要,细节就不罗嗦了。 同时放置的目录一定要正确。
重启你的JBOSS, 就可以看到你的工程了。 跟你的TOMCAT中跑起来一样顺畅。。。 希望对有需要的朋友给予小小帮助
如果觉得好,请在下方点赞。