2011-02-09 49 views
4

我试图在jboss-6.0.0Final上部署我的web应用程序,它目前部署在apache tomcat上。 我有两个罐子,其中有一个包装是org.apache.axis。我在<Jboss-home>/server/default/lib &中放了一个罐子,在<my-app-war>WEB-INF/lib的另一个罐子里。如何强制jboss从webapp的lib中的jar文件中加载类

需要将两个罐放在类路径中。没办法删除一个罐子。所以我需要保持两个罐子。 &这是给我下面的错误

java.lang.ClassCastException: org.apache.axis.attachments.AttachmentsImpl cannot be cast to org.apache.axis.attachments.Attachments 
    at org.apache.axis.AxisFault.makeFault(AxisFault.java:101) 
    at org.apache.axis.client.Call.invoke(Call.java:1828) 

我认为这是由于两种不同的罐子相同的类的冲突。

现在,我想知道如何强制jboss从/ WEB-INF/lib中的axis.jar中加载该特定包的类。

我该怎么做?

+0

为什么你需要把JAR放在两个地方? – skaffman 2011-02-09 16:22:00

+0

很想知道你是否能够孤立这场战争。我遇到了同样的问题,孤立似乎并没有工作。 – Snekse 2011-03-08 21:03:58

回答

0


这帮助我:
http://www.mastertheboss.com/jboss-configuration/solving-jboss-5-classloading-issues

爆炸你的战争,

在你引爆WAR的WEB-INF目录下添加此XML文件:的jboss-classloading.xml
与内容:
(域是你的战名)

<classloading xmlns="urn:jboss:classloading:1.0" 
      name="mywar.war" 
      domain="mywar_domain" <!-- (domain is your war name) --> 
      parent-domain="Ignored" 
      export-all="NON_EMPTY" 
      import-all="true"> 
</classloading> 
+0

这是用于JBOSS 5,但在JBOSS EAP 6中。* + Jboss正在使用模块化依赖关系,所以这不会起作用 – rajadilipkolli 2016-09-17 06:07:11

1

我会分享一个相当简单直接的过程,其中我h当我遇到同样的情况时,广告随之而来。

1>创建一个jboss-web.xml文件。

<class-loading java2classloadingcompliance="false"> 
    <loader-repository> 
     com.rts:archive=DTH_PROD.war 
     <loader-repository-config> 
      java2ParentDelegation=false 
     </loader-repository-config> 
    </loader-repository> 
    </class-loading> 
</jboss-web> 

点:

  • 开始标记的XML这是不是在我张贴的上面的代码 检查3号线的代码可见,
  • com.rts - 这是您的软件包名称。
  • DTH_PROD.war - 包名要保留

2>现在这个XML文件放到你的项目和voilla的WEB-INF目录下!

此外,您可能希望参考this article了解详细信息。如果您遇到任何困难解决此问题,请在下面评论。