Java Tomcat找不到类“;不可访问的ewsdlexception“;,玻璃鱼罐头

Java Tomcat找不到类“;不可访问的ewsdlexception“;,玻璃鱼罐头,java,tomcat,wsdl,glassfish,webservice-client,Java,Tomcat,Wsdl,Glassfish,Webservice Client,我正在使用Java中的Web服务,打开端口并调用服务后,我尝试捕获一个“com.sun.xml.ws.wsdl.parser.incaccessiblewsdlexception” 这在我的dev Glassfish v2服务器上运行得很好,但是当我将WAR文件转移到Tomcat时,我得到了一个NoClassDefFoundError: java.lang.NoClassDefFoundError: com/sun/xml/ws/wsdl/parser/InaccessibleWSDLExcep

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

这在我的dev Glassfish v2服务器上运行得很好,但是当我将WAR文件转移到Tomcat时,我得到了一个NoClassDefFoundError:

java.lang.NoClassDefFoundError: com/sun/xml/ws/wsdl/parser/InaccessibleWSDLException
我在谷歌上搜索了一下,发现JARjaxws-rt.JAR
incaccessiblewsdlexception
类。但在我的战争中包括这个罐子只会破坏更多的东西

如果您能帮我消除这个错误,我将不胜感激

谢谢

其他信息:

在添加jaxws-rt.jar之后,无论是否捕获到不可访问的ewsdlexception,我在所有服务上都会得到这个:

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

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


它在glassfish中工作,因为默认情况下它安装了所有这些JAR,而Tomcat没有安装。

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


它在glassfish中工作,因为默认情况下它安装了所有这些JAR,而Tomcat没有。

问题可能是您正在导入一个以
com.sun.开头的类。
。这通常是不好的:


这个类没有作为JAX-WS规范的一部分进行记录,所以我希望这个类是Glassfish中JAX-WS实现的一部分;它不太可能出现在任何其他实现中,如果您希望代码是可移植的,就不应该引用它。我建议您改为catch(我相信这是父类型)。

问题可能是您正在导入一个以
com.sun开头的类。
。这通常是不好的:


这个类没有作为JAX-WS规范的一部分进行记录,所以我希望这个类是Glassfish中JAX-WS实现的一部分;它不太可能出现在任何其他实现中,如果您希望代码是可移植的,就不应该引用它。我建议您改为捕获(我认为这是父类型)。

请查看其他信息。谢谢。您的类路径中缺少另一个依赖项
streambuffer-x.xx.jar
。我猜Glassfish会自动处理这些依赖关系,但在我添加jaxws-rt.jar之前,其他服务(我没有捕获到不可访问的EWSDlexception)运行良好。他们不需要streambuffer-x.xx.jar。现在连他们也没有;不行。我将尝试添加您提到的罐子。请查看其他信息。谢谢。您的类路径中缺少另一个依赖项
streambuffer-x.xx.jar
。我猜Glassfish会自动处理这些依赖关系,但在我添加jaxws-rt.jar之前,其他服务(我没有捕获到不可访问的EWSDlexception)运行良好。他们不需要streambuffer-x.xx.jar。现在连他们也没有;不行。我将尝试添加您提到的jar。是的,Glassfish默认情况下在..\Glassfish-v2ur2\lib文件夹中包含所有这些jar文件。我最终复制了webservices-rt.jar,它成功了。至少现在是这样。我希望没有其他依赖项。如果有,我将只复制整个glassfish-v2ur2\lib。此外,流缓冲区异常可能是因为jaxws-rt.jar存在兼容性问题而发生的。webservices-rt.jar没有这样的问题。不过,感谢您的回答。流缓冲区异常是因为webservices-rt.jar包含它,现在您复制了它,tomcat可以找到它。是的,Glassfish默认情况下在..\Glassfish-v2ur2\lib文件夹中包含所有这些jar文件。我最终复制了webservices-rt.jar,它成功了。至少现在是这样。我希望没有其他依赖项。如果有,我将只复制整个glassfish-v2ur2\lib。此外,流缓冲区异常可能是因为jaxws-rt.jar存在兼容性问题而发生的。webservices-rt.jar没有这样的问题。不过,感谢您的回答。流缓冲区异常是因为webservices-rt.jar包含它,现在您复制了它,tomcat可以找到它。谢谢,该类可能是特定于Glassfish的,因为我在Glassfish-v2ur2\lib中的一个jar中找到了它。更改对“sun”包的引用可能需要一些工作,因为我们已经处于部署阶段,但感谢您提供的链接。谢谢,该类可能是特定于Glassfish的,因为我在Glassfish-v2ur2\lib中的一个jar中找到了它。更改对“sun”包的引用可能需要一些工作,因为我们已经处于部署阶段,但感谢您的链接。