`
lengweiping1983
  • 浏览: 17451 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

CXF客户端调用时出错解决方法

    博客分类:
  • CXF
阅读更多
我在CXF客户端调用时出现如下错误:
2008-10-2 15:34:36 org.springframework.context.support.AbstractApplicationContext prepareRefresh
信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@1960f05: display name [org.springframework.context.support.ClassPathXmlApplicationContext@1960f05]; startup date [Thu Oct 02 15:34:36 CST 2008]; root of context hierarchy
2008-10-2 15:34:36 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from class path resource [beanRefClient.xml]
Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [beanRefClient.xml]; nested exception is javax.xml.parsers.FactoryConfigurationError: Provider org.apache.xerces.jaxp.DocumentBuilderFactoryImpl not found
Caused by: javax.xml.parsers.FactoryConfigurationError: Provider org.apache.xerces.jaxp.DocumentBuilderFactoryImpl not found
at javax.xml.parsers.DocumentBuilderFactory.newInstance(Unknown Source)
at org.springframework.beans.factory.xml.DefaultDocumentLoader.createDocumentBuilderFactory(DefaultDocumentLoader.java:87)
at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:68)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:361)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:313)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:290)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:131)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:147)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:173)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:112)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:79)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:101)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:394)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:324)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:122)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:66)
at ws.cxf.client.SurveyServiceClient.main(SurveyServiceClient.java:22)



解决方法 设置两个属性(javax.xml.parsers.DocumentBuilderFactory,javax.xml.parsers.SAXParserFactory)值如下:
System.setProperty("javax.xml.parsers.DocumentBuilderFactory",
       "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl");
System.setProperty("javax.xml.parsers.SAXParserFactory",
       "com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl");
再运行就没有错了.

最后发现原因是我使用MyEclipse创建项目时引用了J2EE 1.4 Library Container库(JAVA构建路径-->库)
使得sun.boot.class.path增加了myelipse下的jar文件,然后就把javax.xml.parsers.DocumentBuilderFactory变量的值设为org.apache.xerces.jaxp.DocumentBuilderFactoryImpl
即还有第二种解决方法,就是去掉J2EE 1.4 Library Container库,编译,再运行就没有错了.

(JDK版本为1.5与6.0都测试通过).

请参考我的另外两篇转载的文章
DocumentBuilderFactory以及SAXParserFactory具体实现的查找步骤
http://lengweiping1983.iteye.com/blog/248553
XML api折射出sun与IBM的恩仇
http://lengweiping1983.iteye.com/blog/248560
分享到:
评论

相关推荐

    CXF客户端生成器

    在使用CXF客户端生成器时,首先需要将Web服务的WSDL URL或者WSDL文件放在本地,然后进入CXF库的bin目录。在给定的压缩包文件"apache-cxf-2.7.16-src"中,包含了CXF源码,开发者可以通过编译和构建这个源码来获取可...

    CXF Web Service 安全认证出错?求大牛解决

    - **客户端代码**:客户端调用服务时,需要正确处理认证和授权过程。确保使用正确的API来设置认证信息。 - **异常处理**:确保对可能出现的安全异常进行了适当的捕获和处理。 6. **日志和调试**: - **启用日志*...

    wsdl生成客户端

    3. **编译并运行**:编译生成的客户端代码,然后在你的应用中引入这些类,调用相应的方法即可实现与Web Service的交互。 四、注意事项 - 当生成的客户端遇到问题时,检查WSDL文件是否正确无误,服务是否可用,网络...

    CXF拦截器(Interceptor)的使用

    值得注意的是,为了保持线程安全性,开发人员在实现这些方法时应避免直接访问Interceptor类的内部状态,因为拦截器实例可能会并发地由多个线程调用。 #### InterceptorChain `InterceptorChain`充当了拦截器的管理...

    wsdl2java 生成wsdljava客户端所需要的包

    它是由Apache CXF项目提供的,能够从一个WSDL文件自动生成Java源代码,这些源代码包含了客户端调用Web服务所需的 stubs、proxies和数据绑定类。这极大地简化了开发者的工作,无需手动编写复杂的网络调用代码。 生成...

    java.net.SocketException Connection reset 解决方法

    "java.net.SocketException Connection reset 解决方法" 在 Java 编程中,SocketException 是一种常见的异常,特别是在网络编程中。Conexion reset by peer 是一种特殊的 SocketException,它发生在客户端和服务器...

    wsdl反向生成工具

    "WSDL反向生成工具"的功能在于,当开发者拥有一个WSDL文件时,可以通过这个工具自动生成对应的客户端代码,从而无需手动编写调用服务所需的复杂代码。这样不仅提高了开发效率,也降低了出错的可能性。 【标签】 1. ...

    Java2WSDL和WSDL2Java操作指南.doc

    WSDL2Java工具使得调用Web服务如同调用本地方法一样简单,减少了开发复杂性和出错的可能性。 在实际使用中,这两者通常结合在一起,先使用Java2WSDL创建WSDL文件,然后通过WSDL2Java生成客户端代码,这样可以快速...

    soap-build生成Soap接口请求报文

    在使用“soap-build”时,你需要有SOAP服务的WSDL(Web Service Description Language)文件,这是一个XML文档,定义了服务的接口、消息格式和调用方式。通过解析WSDL,工具能自动构建出符合规范的SOAP请求模板。...

    通向架构师的道路(第十天)之Axis2 Web Service(一).docx

    它同时提供一些工具用来讲 WSDL 文档转换成客户端的调用框架以及根据类来产生 WSDL 定义文档。 开发项目中如何选择使用 Axis2 和其它的WebService: * 如果你的应用程序需要支持多语言即有 C++, .net, Java,你...

    xfirespring整合使用原代码

    在提供的文件列表中,`index.jsp`可能是项目的主页面,用于展示或调用Web服务的客户端示例。`WEB-INF`目录包含了应用的Web相关配置,如`web.xml`,在这里可能会有Spring和XFire的配置。`META-INF`目录通常包含项目的...

    wsdl-reader:测试读取wsdl并生成SOAP响应

    这些库允许开发人员从WSDL生成Java客户端代码,简化了调用Web服务的过程。本项目“wsdl-reader”可能就是基于这样的库来实现的。 SOAP是一种基于XML的消息协议,用于在Web上交换结构化的和类型化的信息。一个SOAP...

Global site tag (gtag.js) - Google Analytics