我有一个奇怪的问题。
的情况下,它在JDK6中可以正常工作
如何防止Apache CXF“运行” JAX-WS东西。 (问题是,CXF无法运行代码...)。我也完全不了解Apache CXF是如何发现这些类的。我没有注册他们吗?
非常感谢你!
马库斯
参考方案
Apache CXF(准确地说是cxf-rt-frontend-jaxws-*.jar
)将自己注册为JVM中的JAX-WS提供程序。在前面提到的JAR中,有一个名为/META-INF/services/javax.xml.ws.spi.Provider
的文件,其内容如下:
org.apache.cxf.jaxws.spi.ProviderImpl
现在,如果您查看javax.xml.ws.spi.FactoryFinder#find
方法,您会发现JDK在CLASSPATH中搜索是否存在javax.xml.ws.spi.Provider
文件,如果没有,则回退到默认的Sun实现。因此,您有两种方法可以强制回退:
中删除cxf-rt-frontend-jaxws-*.jar
javax.xml.ws.spi.Provider
文件以指向后备位置第二个选项实际上要容易一些。只需创建:
/src/main/resources/META-INF/services/javax.xml.ws.spi.Provider
具有以下内容的文件(假设您正在使用Maven):
org.apache.cxf.jaxws.spi.ProviderImpl
就是这样,用javax.xml.ws.Endpoint#publish
测试。
我有几个JAX-WS Web服务,它们使用相同的类,但是从wsdl(在客户端)生成后,相同的类具有不同的包。我发现了如何使用@xmltype批注将它们放入同一包中。但是我不能使用它,因为源代码不可用。在服务部署期间是否可以通过某种方式修复它? 参考方案 您如何从WSDL生成客户端代码?如果您使用maven,则可以在插件设置中指定生成类的包(例如apache …
JAX WS SOAP处理程序,用于过滤掉无效的xml字符 - java我有一个Web服务,在客户端中传递带有一些无效xml字符的字符串。并且在服务器端解析请求时,JAXWS抛出异常,因为它无法解析无效的xml字符。为了解决此问题,我尝试创建以下SOAPHandler。在下面的SOAPHandler中,我尝试迭代子元素,这意味着我已经在解析xml,因此在处理程序本身中获取了异常。如何从邮件中删除无效的xml字符?import j…
代理服务器上的JAX-WS客户端认证 - java我正在尝试使用JAX-WS api在客户端应用程序上发送一些肥皂消息。但是,我位于防火墙后面,唯一的选择是使用代理服务器进行访问。我试图在Google上找到有关此问题的任何答案,但到目前为止都失败了:要对System.setProperty,http.proxyHost,http.proxyPort,http.proxyUser使用http.proxyPas…
jax-ws绑定-方法未重命名,而类被重命名 - java我觉得自己被卡住了。这是wsdl:http://www.doffin.no/ws/tdeservice.asmx?wsdl我使用apache maven cxf插件生成类。由于名称的序列为“ X0020”,因此我想重命名两个类。为wsdl:definitions / wsdl:service [@ name ='TDE_x0020_Connect']生成的一…
JAX RS,我的过滤器不起作用 - java我正在研究:Best practice for REST token-based authentication with JAX-RS and Jersey但是我的过滤器未触发,我的呼叫直接传递到了端点...我的安全界面: @Qualifier @Retention(RUNTIME) @Target({METHOD, FIELD, PARAMETER, TY…