Tomcat 找不到类“InaccessibleWSDLException”,glassfish 可以

发布于 2024-10-26 05:09:18 字数 698 浏览 5 评论 0原文

我正在使用 Java 中的 Web 服务,在打开端口并调用服务后,我尝试捕获“com.sun.xml.ws.wsdl.parser.InaccessibleWSDLException”。

这在我的开发 Glassfish v2 服务器上运行良好,但是当我将 WAR 文件转移到 Tomcat 时,我收到了 NoClassDefFoundError:

java.lang.NoClassDefFoundError: com/sun/xml/ws/wsdl/parser/InaccessibleWSDLException

我用 Google 搜索了一下,发现 JAR jaxws-rt.jarInaccessibleWSDLException 类。但在我的 WAR 中包含这个 JAR 只会破坏更多的东西。

对于消除此错误的任何帮助,我将不胜感激。

谢谢。

其他信息

添加 jaxws-rt.jar 后,我在所有服务上都会收到此信息,无论我是否捕获 InaccessibleWSDLException :

java.lang.ClassNotFoundException: com.sun.xml.stream.buffer.XMLStreamBuffer

I am working with webservices in Java, and right after opening the port and calling the service, I try to catch a "com.sun.xml.ws.wsdl.parser.InaccessibleWSDLException".

This worked fine on my dev Glassfish v2 server, but when I shifted my WAR file to Tomcat, I got a NoClassDefFoundError:

java.lang.NoClassDefFoundError: com/sun/xml/ws/wsdl/parser/InaccessibleWSDLException

I did some Googled it and found out that the JAR jaxws-rt.jar had the InaccessibleWSDLException class. But including this JAR in my WAR only broke more things.

I would appreciate any help in eliminating this error.

Thanks.

Additional Info:

After adding jaxws-rt.jar, I get this on all services, irrespective of whether I catch InaccessibleWSDLException or not:

java.lang.ClassNotFoundException: com.sun.xml.stream.buffer.XMLStreamBuffer

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

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

发布评论

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

评论(2

生活了然无味 2024-11-02 05:09:18

问题可能是您正在导入以 com.sun. 开头的类。这通常是不好的:为什么开发人员不应该编写调用“sun”的程序' Packages

此类未记录为 JAX-WS 规范的一部分,因此我希望此类是 Glassfish 中 JAX-WS 实现的一部分;它不太可能出现在任何其他实现中,如果您希望代码可移植,则不应引用它。我建议你捕捉 WebServiceException 相反(我相信这是父类型)。

The problem is probably that you're importing a class starting with com.sun.. This is generally bad: Why Developers Should Not Write Programs That Call 'sun' Packages

This class is not documented as part of the JAX-WS specification, so I expect this class is part of the JAX-WS implementation in Glassfish; it is unlikely to be present in any other implementation and you should not reference it if you want your code to be portable. I suggest you catch WebServiceException instead (which I believe is the parent type).

场罚期间 2024-11-02 05:09:18

您需要添加所有 WSDL 依赖项,我不确定它们是什么,但流缓冲区看起来像它,可以在这里找到 jar:

http://download.java.net/maven/1/com.sun.xml.stream.buffer/jars/

它有效在 glassfish 中,因为它默认安装了所有这些 jar,而 Tomcat 没有。

You need to add all WSDL dependencies, I'm not sure what they are but stream buffer looks like it is, jars can be found here:

http://download.java.net/maven/1/com.sun.xml.stream.buffer/jars/

It works in glassfish because it has all those jars installed by default while Tomcat does not.

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