浏览 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的问题了? 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
最后更新时间:2007-09-30
在WebLogic上用apache的容易出问题,同样情况也出现在用xmlbean的时候。也是因为用一个类存在两个地方,偏偏两者是不一样的。想办法先装载apache那边提供的才行。
个人认为应该尽量避免在weblogic环境中使用有冲突的apache项目,避免不必要的麻烦。 上次解决xmlbean的方法是:直接用weblogic的xmlbean。 |
|
| 返回顶楼 | |
|
最后更新时间: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 是文件与日期都有比较大的不同,估计就是在这里面了。 |
|
| 返回顶楼 | |




