Java SOAP代理初始化异常

发布于 2024-09-30 20:29:24 字数 2174 浏览 1 评论 0原文

我正在将一组基于 Java 的 AMF Web 服务部署到 GlassFish v3。这一切在开发环境中工作正常,但在当前正在设置的临时环境中失败:

开发:GlassFish 3.0.1 Web Profile、Java JDK 1.6.0u22。 暂存:GlassFish 3.0、Java JDK 1.6.0u22。

我意识到 GlassFish 版本不同,我已要求对其进行更新以匹配开发环境。因为我很难想象这是问题的原因,所以我想我会在这里询问是否有人有任何想法。

基于 Java 的 AMF 服务与基于 .NET 的 SOAP 服务交互。 Java 服务使用 wsimport 从 SOAP 服务生成代理。据我所知,尝试初始化 SOAP 代理时会发生错误。

堆栈跟踪如下:

org.granite.messaging.service.ServiceException: Could not initialize class com.sun.xml.internal.ws.spi.ProviderImpl
at org.granite.messaging.service.AbstractServiceExceptionHandler.getServiceException(AbstractServiceExceptionHandler.java:42)
at org.granite.messaging.service.DefaultServiceExceptionHandler.handle(DefaultServiceExceptionHandler.java:33)
at org.granite.messaging.service.ServiceInvoker.invoke(ServiceInvoker.java:121)
at org.granite.messaging.amf.process.AMF3RemotingMessageProcessor.process(AMF3RemotingMessageProcessor.java:56)
at org.granite.messaging.amf.process.AMF0MessageProcessor.process(AMF0MessageProcessor.java:79)
at org.granite.messaging.webapp.AMFMessageServlet.doPost(AMFMessageServlet.java:62)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
[..cut..]
Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.sun.xml.internal.ws.spi.ProviderImpl
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at javax.xml.ws.spi.FactoryFinder.newInstance(FactoryFinder.java:31)
at javax.xml.ws.spi.FactoryFinder.find(FactoryFinder.java:128)
at javax.xml.ws.spi.Provider.provider(Provider.java:83)
at javax.xml.ws.Service.<init>(Service.java:56)
[..cut..]

有什么想法吗?

I am deploying a set of Java-based AMF web services to GlassFish v3. This all works fine in the development environment, but fails in the staging environment where it is currently being setup:

Dev: GlassFish 3.0.1 Web Profile, Java JDK 1.6.0u22.
Staging: GlassFish 3.0, Java JDK 1.6.0u22.

I realize the GlassFish version and edition is different, and I have requested it to be updated to match the development environment. Because I have a hard time imagining this to be the cause of the problem though, I thought I'd ask here if anyone had any ideas.

The Java-based AMF service interacts with a .NET-based SOAP service. The Java-service has proxies generated off the SOAP service using wsimport. The error occurs when trying to initialize the SOAP proxy as far as I can tell.

The stack trace is as follows:

org.granite.messaging.service.ServiceException: Could not initialize class com.sun.xml.internal.ws.spi.ProviderImpl
at org.granite.messaging.service.AbstractServiceExceptionHandler.getServiceException(AbstractServiceExceptionHandler.java:42)
at org.granite.messaging.service.DefaultServiceExceptionHandler.handle(DefaultServiceExceptionHandler.java:33)
at org.granite.messaging.service.ServiceInvoker.invoke(ServiceInvoker.java:121)
at org.granite.messaging.amf.process.AMF3RemotingMessageProcessor.process(AMF3RemotingMessageProcessor.java:56)
at org.granite.messaging.amf.process.AMF0MessageProcessor.process(AMF0MessageProcessor.java:79)
at org.granite.messaging.webapp.AMFMessageServlet.doPost(AMFMessageServlet.java:62)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
[..cut..]
Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.sun.xml.internal.ws.spi.ProviderImpl
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at javax.xml.ws.spi.FactoryFinder.newInstance(FactoryFinder.java:31)
at javax.xml.ws.spi.FactoryFinder.find(FactoryFinder.java:128)
at javax.xml.ws.spi.Provider.provider(Provider.java:83)
at javax.xml.ws.Service.<init>(Service.java:56)
[..cut..]

Any ideas?

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

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

发布评论

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

评论(1

盛装女皇 2024-10-07 20:29:24

解决方案是安装完整的 GlassFish Server,而不是 GlassFish Server Web Profile。尽管开发环境是使用 Web Profile 设置的,但它仍然保留了完整的 GlassFish(特别是 JAXB 和 JAXWS jar 文件)。

暂存环境是干净的,并且只安装了 Web Profile,因此由于缺少依赖项而失败。

The solution was to install the full GlassFish Server instead of GlassFish Server Web Profile. Despite the development environment being setup with Web Profile it had remnants of the full GlassFish (specifically the JAXB and JAXWS jar files) that were being picked up there.

The staging environment was clean and only ever had Web Profile installed and thus failed because of the missing dependencies.

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