目前系统webservice调用有两个报错
1. Can not set final com.sun.tools.internal.xjc.reader.internalizer.InternalizationLogic field com.sun.tools.internal.xjc.reader.internalizer.DOMForest.logic to org.apache.cxf.endpoint.dynamic.DynamicClientFactory
2. java.lang.RuntimeException: XPathFactory#newInstance() failed to create an XPathFactory for the default object model: http://java.sun.com/jaxp/xpath/dom with the XPathFactoryConfigurationException: javax.xml.xpath.XPathFactoryConfigurationException: No XPathFactory implementation found for the object model: http://java.sun.com/jaxp/xpath/dom
关于问题1
是由于cxf-api-2.7.8.jar中未导入对com.sun.tools.xjc.api的依赖导致加载的SchemaCompilerImpl 是系统tools中实现的,在后面设置值时不匹配报错.修改cxf-api-2.7.8.jar加入对com.sun.tools.xjc.api即不报错,貌似不影响正常使用,且cxf-api后续版本都没有加入此引用,故没处理.
关于问题2 是由于找不到XPathFactory的实现类,对于某些webservice可用,某些不可用是由于XPathFactory的类加载机制很特殊
(1) 在加载过程中(XPathFactoryFinder类中)首先以XPathFactory的类全名和默认的http://java.sun.com/jaxp/xpath/dom去SystemProperty中取,如果有就创建实例
(2) 没有的话就去java home中有没有jaxp.properties文件,如果有就根据这个文件去取
(3) 没有的话就去看META-INF/services是不是配置了Factory的实现类,如果有就根据这个取
(4) 没有的话就去创建默认的类实现,此类在rt.jar中。
(1) com.sun.tools.xjc.reader.internalizer. Internalizer初始化时需要
private static final XPathFactory xpf = XPathFactory.newInstance(); 这时会将默认的http://java.sun.com/jaxp/xpath/dom代入取factory,
(2) 取factory的XPathFactory的newInstance方法会使用 ClassLoader classLoader = ss.getContextClassLoader();
(3) getContextClassLoader中使用Thread.currentThread().getContextClassLoader();获取当前线程的类加载器
因为是获取的当前线程的加载器,在实际运行过程中发现有些是webAppClassLoader有些是BundleAwire形式,这些是可以加载到com.sun.org.apache.xpath.internal.jaxp.XPathFactoryImpl类的。而有些情况下是BundleDelegatingClassLoader(BundleDelegatingClassLoader for [glodon.gem.extend (glodon.gem.extend)]),这时是加载不到此类的。
由于是rt.jar中的类应该委托到bootstrap加载器,故只需将其配置到org.osgi.framework.bootdelegation中即可,
最后一个问题,为啥以前好使现在不好使了,是由于以前这里配置了,后来整理时被干掉了,因此这个webservice不好使了。
- 大小: 34 KB
- 大小: 6.4 KB
- 大小: 63.2 KB
分享到:
相关推荐
赠送jar包:cxf-rt-bindings-soap-3.0.1.jar; 赠送原API文档:cxf-rt-bindings-soap-3.0.1-javadoc.jar; 赠送源代码:cxf-rt-bindings-soap-3.0.1-sources.jar; 赠送Maven依赖信息文件:cxf-rt-bindings-soap-...
赠送jar包:cxf-rt-frontend-simple-3.0.1.jar; 赠送原API文档:cxf-rt-frontend-simple-3.0.1-javadoc.jar; 赠送源代码:cxf-rt-frontend-simple-3.0.1-sources.jar; 赠送Maven依赖信息文件:cxf-rt-frontend-...
赠送jar包:cxf-rt-transports-http-3.0.1.jar; 赠送原API文档:cxf-rt-transports-http-3.0.1-javadoc.jar; 赠送源代码:cxf-rt-transports-http-3.0.1-sources.jar; 赠送Maven依赖信息文件:cxf-rt-transports-...
赠送jar包:cxf-rt-frontend-jaxws-3.0.1.jar; 赠送原API文档:cxf-rt-frontend-jaxws-3.0.1-javadoc.jar; 赠送源代码:cxf-rt-frontend-jaxws-3.0.1-sources.jar; 赠送Maven依赖信息文件:cxf-rt-frontend-jaxws...
赠送jar包:cxf-rt-rs-extension-providers-3.0.1.jar; 赠送原API文档:cxf-rt-rs-extension-providers-3.0.1-javadoc.jar; 赠送源代码:cxf-rt-rs-extension-providers-3.0.1-sources.jar; 赠送Maven依赖信息...
NULL 博文链接:https://royal2xiaose.iteye.com/blog/1426872
NULL 博文链接:https://royal2xiaose.iteye.com/blog/1454464
cxf-rt-frontend-jaxws-3.0.16.jar jar包下载3.0.16版本下载
CXF入门教程(4) -- webService异步调用模式文章配套代码,文中涉及的异步调用客户端的代码放在com.neareast.test.cxf.asyClient包下。原文地址:http://blog.csdn.net/neareast/article/details/7726503
带详细解决方案说明文档,提供三种解决方式,另外包含stax2-api.jar,stax2-api-source.jar,woodstox-core-asl-4.4.1.jar,stax-ex.jar,wstx-asl-3.2.9.jar等jar文件,亲测有效。
赠送jar包:cxf-rt-rs-client-3.0.1.jar; 赠送原API文档:cxf-rt-rs-client-3.0.1-javadoc.jar; 赠送源代码:cxf-rt-rs-client-3.0.1-sources.jar; 赠送Maven依赖信息文件:cxf-rt-rs-client-3.0.1.pom; 包含...
赠送jar包:cxf-rt-bindings-xml-3.0.1.jar; 赠送原API文档:cxf-rt-bindings-xml-3.0.1-javadoc.jar; 赠送源代码:cxf-rt-bindings-xml-3.0.1-sources.jar; 赠送Maven依赖信息文件:cxf-rt-bindings-xml-3.0.1....
赠送jar包:cxf-rt-ws-addr-3.0.1.jar; 赠送原API文档:cxf-rt-ws-addr-3.0.1-javadoc.jar; 赠送源代码:cxf-rt-ws-addr-3.0.1-sources.jar; 赠送Maven依赖信息文件:cxf-rt-ws-addr-3.0.1.pom; 包含翻译后的API...
cxf-core-3.0.0.jar,cxf-rt-bindings-soap-3.0.0.jar,cxf-rt-databinding-jaxb-3.0.0.jar,cxf-rt-frontend-jaxws-3.0.0.jar,cxf-rt-frontend-simple-3.0.0.jar,cxf-rt-transports-http-3.0.0.jar,cxf-rt-...
CXF webService 工具类
springboot整合CXF发布webservice和客户端调用 项目中每个类都有详细的注释,保证都能看懂,不失为一个学习springboot整合cxf来学习webservice发布调用的好例子
赠送jar包:cxf-rt-databinding-jaxb-3.0.1.jar; 赠送原API文档:cxf-rt-databinding-jaxb-3.0.1-javadoc.jar; 赠送源代码:cxf-rt-databinding-jaxb-3.0.1-sources.jar; 赠送Maven依赖信息文件:cxf-rt-...
NULL 博文链接:https://royal2xiaose.iteye.com/blog/1855329
赠送jar包:cxf-rt-ws-policy-3.0.1.jar; 赠送原API文档:cxf-rt-ws-policy-3.0.1-javadoc.jar; 赠送源代码:cxf-rt-ws-policy-3.0.1-sources.jar; 赠送Maven依赖信息文件:cxf-rt-ws-policy-3.0.1.pom; 包含...
用camel-cxf调用webservice和发布一个webservice接口例子,首先启动QueryServiceMain主函数启动webservice接口,然后启动测试类TestWebservice。例子主要是实现java代码实现camel调用webservice接口