论坛首页 Java版 SOA

Axis1.4:LinkageError:loader constraints violated SOAPMessage

浏览 1196 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2007-09-30 关键字: Axis Web Services WebLogic ClassLoader Solaris
环境:Solaris 10,WebLogic 9.2 MP1,JDK SUN 1.5.0.12

发布Web Service的应用在一个WebLogic Server A上面,消费Web Service的Web应用程序在另一个WebLogic Server B上面,并且两者在在同一台物理机上面

当 B 机器上面的Web应用程序通过WebLogic的控制台来启动后,也正常重新启动,但是访问 A 机上面的 Web Services时,会发现如下错误:

Caused by: java.lang.LinkageError: loader constraints violated when linking javax/xml/soap/SOAPMessage class
        at org.apache.axis.AxisFault.setFaultCodeAsString(AxisFault.java:422)
        at org.apache.axis.AxisFault.<init>(AxisFault.java:228)


如果我重启 A 机上面的整个WebLogic Server的话,然后Web应用程序也随之启动后,则可以正常访问 B 机上面的Web Service。

进之分析:
1、A 机上面的Web应用程序包里只有一个saaj.jar包里有 javax/xml/soap/SOAPMessage 这个类,没有第二个jar包存在。

2、WebLogic本身的安装目录下包含有 javax/xml/soap/SOAPMessage 这个类的包有
No.1
Jar Package:%BEA_HOME%/utils/bsu/saaj.jar
javax/xml/soap/SOAPMessage.class
No.2
Jar Package:%BEA_HOME%/WebLogic92/server/lib/api.jar
javax/xml/soap/SOAPMessage.class
No.3
Jar Package:%BEA_HOME%/WebLogic92/server/lib/webserviceclient+ssl.jar
javax/xml/soap/SOAPMessage.class
No.4
Jar Package:%BEA_HOME%/WebLogic92/server/lib/webserviceclient.jar
javax/xml/soap/SOAPMessage.class
No.5
Jar Package:%BEA_HOME%/WebLogic92/server/lib/webservices.jar
javax/xml/soap/SOAPMessage.class

3、B 机上面的Web Services服务则是正常的,通过Soap UI工具都可以正常访问的,于是可以确定于 B 机上面是没有任何关系的。

现在只剩下WebLogic的ClassLoader的问题了?
   
最后更新时间:2007-09-30
在WebLogic上用apache的容易出问题,同样情况也出现在用xmlbean的时候。也是因为用一个类存在两个地方,偏偏两者是不一样的。想办法先装载apache那边提供的才行。

个人认为应该尽量避免在weblogic环境中使用有冲突的apache项目,避免不必要的麻烦。

上次解决xmlbean的方法是:直接用weblogic的xmlbean。
   
0 请登录后投票
最后更新时间:2007-10-17
XMLBeans的问题很明了,通过类名,包名,方法名之类的比较与分析,我们可以很容易地进行解决。

但是这个出现的错误是比较怪异的东西了,重新启动就成,控制台单独ReDeploy就不成。唯有的可能就是WLS的自身的ClassLoader的问题了,此次会与jar包再次相关?

通过比对:
A 机上面的Web应用程序包里只有一个saaj.jar包与
No.1
Jar Package:%BEA_HOME%/utils/bsu/saaj.jar 相同,但这个与WLS应当是没有直接用到它的


No.2
Jar Package:%BEA_HOME%/WebLogic92/server/lib/api.jar

No.5
Jar Package:%BEA_HOME%/WebLogic92/server/lib/webservices.jar
文件相同,但日期与大小不同,汗:(


No.3
Jar Package:%BEA_HOME%/WebLogic92/server/lib/webserviceclient+ssl.jar
No.4
Jar Package:%BEA_HOME%/WebLogic92/server/lib/webserviceclient.jar
是文件与日期都有比较大的不同,估计就是在这里面了。
   
0 请登录后投票
论坛首页 Java版 SOA

跳转论坛:
JavaEye推荐