2

我们在 Weblogic 10.3.5 中部署了一个测试 Web 应用程序。Web 应用程序包含一个 servlet,它使用 jax-ws 调用部署在同一 weblogic 中的 Web 服务。访问 servlet 会引发以下异常:

Two classes have the same XML type name "address". Use @XmlType.name and @XmlType.namespace to assign different names to them.
this problem is related to the following location:
    at com.sun.xml.ws.developer.MemberSubmissionEndpointReference$Address
    at public com.sun.xml.ws.developer.MemberSubmissionEndpointReference$Address com.sun.xml.ws.developer.MemberSubmissionEndpointReference.addr
    at com.sun.xml.ws.developer.MemberSubmissionEndpointReference
this problem is related to the following location:
    at javax.xml.ws.wsaddressing.W3CEndpointReference$Address
    at private javax.xml.ws.wsaddressing.W3CEndpointReference$Address javax.xml.ws.wsaddressing.W3CEndpointReference.address
    at javax.xml.ws.wsaddressing.W3CEndpointReference

我将 servlet 的逻辑复制到一个通用的 java 类中,然后运行它。测试成功。所以问题应该出在Web应用程序上。

我尝试了很多方法,修改 weblogic-application.xml 以添加如下所示的 prefer-application-packages 部分,但仍然不起作用。

<prefer-application-packages>
    <package-name>javax.xml.ws.*</package-name>
    <package-name>javax.xml.bind.*</package-name>
    <package-name>javax.jws.*</package-name>
    <package-name>javax.namespace.xml.*</package-name>
    <package-name>javax.xml.soap.*</package-name>
    <package-name>org.apache.xerces.*</package-name>
    <package-name>org.apache.commons.*</package-name>
    <package-name>com.sun.xml.*</package-name>
</prefer-application-packages>

任何人都可以帮助我,在这个错误上花了几天时间,一点进展都没有。感谢您提前回复一百万。

更新 1

在web应用中,我们不想用metro,直接用从java.net下载的jax-ws,把jaxws-rt.jar、jaxws-api.jar、jaxb等相关jar放到ear/APP -INF/库。

WebLogic Classloader Analysis Tool (wls-cat) 告诉有一些类冲突,并建议在weblogic-application.xml 中添加prefer-application-packages。所以我们添加了 prefer-application-packages 来告诉 weblogic 从我们的应用程序加载它们,而不是从 weblogic jax-ws/metro 实现。

但还是不行。

4

1 回答 1

0

问题可能来自您想在 Weblogic 中使用 Metro JaxWs,它有自己的实现,称为 Oracle JaxWS(基于 Metro)。

这是一个链接,其中解释了如何将 Metro 与 Weblogic 一起使用:http: //metro.java.net/guide/ch02.html#weblogic-10

如果您不使用 Metro 并依赖 Oracle JaxWS,则不必使用首选库或任何特殊包装。

于 2012-09-01T19:04:07.600 回答