App Engine上的javax.xml.ws.Service初始化出错

我正在尝试从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的实现,您应该使用它。

在我的课堂路径中,我找到了

  1. XML的API-1.0.b2,=。jar子
  2. JAXB-api.jar文件
  3. JAXB – impl.jar中

它们看起来不像jaxws实现,至少据我所知。 没有jaxb真的没有(如果我删除那个jar我会收到错误)。

任何建议都是受欢迎的。

[更新] [似乎] 3在类路径中只有jaxb导致问题,因此无法找到GAE的jaxws实现。

这个答案对于理解jaxws初始化的工作原理也很有用。

经过大量挖掘后,我放弃了GAE对jaxws的实现。 Factory类加载器,句点无法找到它们的实现。

所以我选择了Force.com Web Services Connecto并设法让它工作。 代码生成过程中存在错误,在生成的代码中,GAE连接器也需要一些修复。

我很想在GitHub上创建一个项目来展示我的成就。 这种实现更快,您也可以设置套接字超时!