2011-04-27 67 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