我试图连接到从GAE SOAP服务器。 见例子 。 这一切都可以在开发服务器上正常,但在生产初始化过程中,我得到一个500错误。 大量挖掘后,我设法赶上的Throwable和记录堆栈跟踪:
java.lang.ExceptionInInitializerError
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
at java.lang.Class.newInstance0(Class.java:372)
at java.lang.Class.newInstance(Class.java:325)
at javax.xml.ws.spi.FactoryFinder.newInstance(FactoryFinder.java:58)
at javax.xml.ws.spi.FactoryFinder.find(FactoryFinder.java:142)
at javax.xml.ws.spi.Provider.provider(Provider.java:102)
这个问题可能与发行4910 。 其中一项建议有说:
我上面的意思是,你不应该把实现JAXWS本身的任何jar文件到你的战争。 App Engine的运行时包含JAXWS的实现,你应该使用那一个。
在我的类路径中,我发现
- XML的API-1.0.b2,=。罐子
- JAXB-api.jar文件
- JAXB - impl.jar中
他们并不像JAXWS的实现,以及至少据我了解。 真的不能做没有JAXB(我得到一个错误,如果我删除罐子)。
任何的建议是值得欢迎的。
[更新] [看来] 3 ,只是在类路径中JAXB导致一个问题,使GAE的JAXWS实现不能被发现。
这个答案也有助于了解如何JAXWS作品initialzation。