2010-11-05 86 views
0

我正在将一组基于Java的AMF Web服务部署到GlassFish v3。这一切都在开发环境中正常工作,但在当前正在设置的分段环境中失败:Java SOAP代理初始化异常

Dev: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..] 

任何想法?

回答

1

解决方案是安装完整的GlassFish服务器而不是GlassFish Server Web Profile。尽管使用Web Profile配置了开发环境,但仍有剩余的GlassFish(特别是JAXB和JAXWS jar文件)被挑选出来。

暂存环境很干净,只有安装了Web配置文件并因此失败,因为缺少依赖关系。