CXF在jdk1.6中运行异常解决

本文介绍在使用CXF框架部署Web服务过程中遇到的问题及解决办法,包括JAXB API版本冲突、StAX接口实现缺失及WSDL文件解析错误等问题,并提供了解决方案。

首先需要运行 需要添加jar包

cxf-2.2.7.jar

geronimo-jaxws_2.1_spec-1.0.jar

jaxb-impl-2.1.12.jar

jetty-6.1.21.jar

jetty-util-6.1.21.jar

jsr311-api-1.0.jar

wsdl4j-1.6.2.jar

wstx-asl-3.2.9.jar

XmlSchema-1.4.5.jar

 

在jdk1.6中 运行出现异常

Exception in thread "main" java.lang.LinkageError: JAXB 2.0 API is being loaded from the bootstrap classloader, but this RI (from jar:file:/F:/newItem14/cxfFirst/WebRoot/WEB-INF/lib/jaxb-impl-2.1.12.jar!/com/sun/xml/bind/v2/model/impl/ModelBuilder.class) needs 2.1 API. Use the endorsed directory mechanism to place jaxb-api.jar in the bootstrap classloader. (See http://java.sun.com/j2se/1.5.0/docs/guide/standards/)

解决方法

在运行jdk 目录下的jre/lib  新增一个文件夹 endorsed  如果有就不要增加了

将 jaxb-api-2.1.jar拷贝到该目录下即可

 

出现 xmlstream等异常

Provider com.bea.xml.stream.MXParserFactory not found

 javax.xml.stream.FactoryConfigurationError: Provider com.bea.xml.stream.MXParserFactory not found
类路径中的包没有StAX 接口的实现,拷贝包:
wstx-asl-3.2.0.jar,stax-api-1.0.1.jar,

问题解决。

其中jsr173_api-1.0.jar和stax-api-1.0.1.jar,内容相同~

 

 

 

在myeclipse创建项目 客户端去调用时抛出异常 其实就是读取wsdl描述文件出现问题

解决方法 设置两个属性(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

 

 

运行时出现 Could not find wsdl:binding operation info for web method

问题就出在你实例化一个对象转换为接口时

 

比如 UserService us = (UserService) factory.create();

原因是UserService 没有加上 @WebService

在客户端的接口上加上@WebService

转载于:https://www.cnblogs.com/liaomin416100569/archive/2010/04/19/9331770.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值