使用 Metro 代替 Weblogic Web 服务堆栈

发布于 2024-11-04 01:12:37 字数 2852 浏览 0 评论 0原文

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

当试图让 WebLogic 在它自己的堆栈之前使用 Metro 堆栈时,问题就出现了。

到目前为止我采取的步骤是引用项目中的webservices-rt.jar。到目前为止,我在部署ear文件时遇到了这个错误......

原因是:java.lang.LinkageError:加载器约束违规:解析字段“DATETIME”时,类加载器(weblogic / utils / classloaders / ChangeAwareClassLoader的实例)引用类 javax/xml/datatype/DatatypeConstants 和字段解析类型 javax/xml/namespace/QName 的类加载器(实例)对于该类型具有不同的 Class 对象

更新:

最近的错误是:“class javax.xml.namespace.QName既没有@WebSerivce也没有@WebServiceProvider”奇怪的是它正在QName对象上寻找@Webservice:

  1. 的内容

Application-Weblogic.xml
com.ctc.
com.sun.xml.

com.sun.istack.
com.sun.msv.datatype。

com.sun.msv.driver.
com.sun.msv.grammar。

com.sun.msv.reader.
com.sun.msv.relaxns.

com.sun.msv.scanner.
com.sun.msv.util.

com.sun.msv.verifier.
com.sun.msv.writer.

com.sun.org.apache.xml.internal.
com.sun.wsit.

javax.jws.
javax.xml.bind.

javax.xml.soap.
javax.xml.stream.

javax.xml.ws.
javax.xml.activation.

javax.xml.annotation.
javax.xml.mail.

javax.xml.security.
javax.xml.registry。

javax.xml.rpc.
javax.xml.crypto.

javanet.staxutils.
jp.gr.xml。

org.codehaus.stax2.
org.glassfish.gmbal.

org.iso_relax.
org.jcp.xml.dsig.

org.jvnet.
org.relaxng.

antlr.
org.apache.commons.lang.


I am attempting to use Metro web services in place of the default Weblogic webservices stack contained in weblogic.jar.

The problem comes when trying to get WebLogic to use the metro stack before its own.

The steps I have taken so far is to reference the webservices-rt.jar in the project. So far I am getting this error while deploying the ear file....

Caused By: java.lang.LinkageError: loader constraint violation: when resolving field "DATETIME" the class loader (instance of weblogic/utils/classloaders/ChangeAwareClassLoader) of the referring class, javax/xml/datatype/DatatypeConstants, and the class loader (instance of ) for the field's resolved type, javax/xml/namespace/QName, have different Class objects for that type

UPDATES:

Most Recent Error is: "class javax.xml.namespace.QName has neither @WebSerivce nor @WebServiceProvider" Strange that it is looking for @Webservice on a QName object:

  1. Contents of Application-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>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

没有伤那来痛 2024-11-11 01:12:37

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

如果您使用的是WebLogic 10.3.4,则可以使用类加载器分析来分析冲突的包。

在这里查看我的演示:SlideShare.net 以及我的 CAT 演示:YouTube

Take a look at using the FilteringClassLoader which is configured in weblogic-application.xml deployment descriptor. You can instruct WebLogic to load classes from the application in favor of the libraries that are included with WebLogic. The descriptor element is and you specify the Java packages you want to load from the application.

If you are using WebLogic 10.3.4 you can use the ClassLoader Analysis to analyze the packages that are in conflict.

Check out my presentation here: SlideShare.net and my demo of the CAT here: YouTube

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文