2011-04-27 69 views
0

我正在尝试使用Metro Web服务来代替weblogic.jar中包含的默认Weblogic Web服务堆栈。使用Metro代替Weblogic Webservices Stack

当试图让WebLogic使用它自己的城域堆栈时,问题就出现了。

我到目前为止所采取的步骤是引用项目中的webservices-rt.jar。到目前为止,我正在部署ear文件时出现此错误....

引起:java.lang.LinkageError:加载器约束违规:解析字段“DATETIME”时类加载器(weblogic/utils/classloaders的实例/ ChangeAwareClassLoader),并且该字段的已解析类型javax/xml/namespace/QName的类加载器(实例)具有该类型的不同Class对象

更新:

最近错误是:“类javax.xml.namespace.QName既没有@WebSerivce也没有@WebServiceProvider”奇怪,它是l ooking为@WebService QName对象上:

  1. 内容应用程序的weblogic.xml

<wls:prefer-application-packages>
<wls:package-name>com.ctc.</wls:package-name>
<wls:package-name>com.sun.xml.
</wls:package-name>
<wls:package-name>com.sun.istack.</wls:package-name>
<wls:package-name>com.sun.msv.datatype.
</wls:package-name>
<wls:package-name>com.sun.msv.driver.</wls:package-name>
<wls:package-name>com.sun.msv.grammar.
</wls:package-name>
<wls:package-name>com.sun.msv.reader.</wls:package-name>
<wls:package-name>com.sun.msv.relaxns.
</wls:package-name>
<wls:package-name>com.sun.msv.scanner.</wls:package-name>
<wls:package-name>com.sun.msv.util.
</wls:package-name>
<wls:package-name>com.sun.msv.verifier.</wls:package-name>
<wls:package-name>com.sun.msv.writer.
</wls:package-name>
<wls:package-name>com.sun.org.apache.xml.internal.</wls:package-name>
<wls:package-name>com.sun.wsit.
</wls:package-name>
<wls:package-name>javax.jws.</wls:package-name>
<wls:package-name>javax.xml.bind.
</wls:package-name>
<wls:package-name>javax.xml.soap.</wls:package-name>
<wls:package-name>javax.xml.stream.
</wls:package-name>
<wls:package-name>javax.xml.ws.</wls:package-name>
<wls:package-name>javax.xml.activation.
</wls:package-name>
<wls:package-name>javax.xml.annotation.</wls:package-name>
<wls:package-name>javax.xml.mail.
</wls:package-name>
<wls:package-name>javax.xml.security.</wls:package-name>
<wls:package-name>javax.xml.registry.
</wls:package-name>
<wls:package-name>javax.xml.rpc.</wls:package-name>
<wls:package-name>javax.xml.crypto.
</wls:package-name>
<wls:package-name>javanet.staxutils.</wls:package-name>
<wls:package-name>jp.gr.xml.
</wls:package-name>
<wls:package-name>org.codehaus.stax2.</wls:package-name>
<wls:package-name>org.glassfish.gmbal.
</wls:package-name>
<wls:package-name>org.iso_relax.</wls:package-name>
<wls:package-name>org.jcp.xml.dsig.
</wls:package-name>
<wls:package-name>org.jvnet.</wls:package-name>
<wls:package-name>org.relaxng.
</wls:package-name>
<wls:package-name>antlr.</wls:package-name>
<wls:package-name>org.apache.commons.lang.
</wls:package-name>
</wls:prefer-application-packages>

回答

0

看看使用在weblogic-application.xml部署配置的FilteringClassLoader描述。您可以指示WebLogic从应用程序加载类,以支持WebLogic附带的库。描述符元素是,并指定要从应用程序加载的Java包。

如果您使用的是WebLogic 10.3.4,则可以使用ClassLoader Analysis来分析冲突的包。

这里看看我的演讲:SlideShare.net和我的CAT这里的演示:YouTube

+0

WebLogic Server的版本:10.3.3.0 :( 不过,我已经取得了一些进展,因为我张贴的问题...我会更新我的研究结果,如果你能提供帮助,那将非常棒! – Norge 2011-04-28 21:30:44

+0

尽管我没有在愤怒中尝试过,但我认为Classloader Analysis应用程序可以在早期版本的WebLogic Server上运行,只是它只提供与10.3.4是这样的,Jeff? – kevinpowe 2011-04-29 02:19:23

+0

不确定,说实话,你可能错过了正在部署的应用程序中的一个库?如果你可以使用WLS 10.3.4并尝试使用CAT,它可能会给你insi ght如何解决10.3.3上的问题。 CAT仅在10.3.4 – 2011-04-30 05:19:24