cxf错误处理

备忘文件,有些乱

引入cxf后报错:

Caused by: java.lang.NoSuchMethodException: com.sun.xml.bind.v2.runtime.LeafBeanInfoImpl.getTypeNames()
at java.lang.Class.getMethod(Class.java:1604)
at org.apache.cxf.common.util.ReflectionInvokationHandler.invoke(ReflectionInvokationHandler.java:50)
... 63 more

有一篇文章说jdk冲突(http://blog.csdn.net/kojhliang/article/details/6291208)但是我使用myeclipse自带jdk时报其他错误;通过http://www.jarvana.com/jarvana/search?search_type=class&java_class=com.sun.xml.bind.v2.runtime.LeafBeanInfoImpl找到包含com.sun.xml.bind.v2.runtime.LeafBeanInfoImpl类的包还有个stax于是将项目中的

geronimo-stax-api_1.0_spec-1.0.1.jar删除,项目成功启动

另贴其他的一些相关错误及处理方法:



>>一个异常
org.apache.cxf.interceptor.Fault: No such operation:  (HTTP GET PATH_INFO: /qxqp-web/HelloWorld)
只需要在http://localhost:8080/HelloWorld后面加上:wsdl即正常了。


>>
在SSH jdk6.0 Tomcat6.0环境中使用CXF 运行时报如下错误 


Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.apache.cxf.wsdl.WSDLManager' defined in URL [jar:file:/E:/workSpace/T82A/WebRoot/WEB-INF/lib/cxf/cxf-2.1.3.jar!/META-INF/cxf/cxf.fixml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.apache.cxf.wsdl11.WSDLManagerImpl]: Constructor threw exception; nested exception is java.lang.LinkageError: JAXB 2.0 API is being loaded from the bootstrap classloader, but this RI (from jar:file:/E:/workSpace/T82A/WebRoot/WEB-INF/lib/cxf/jaxb-impl-2.1.7.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/) 


... 
Caused by: java.lang.LinkageError: JAXB 2.0 API is being loaded from the bootstrap classloader, but this RI (from jar:file:/E:/workSpace/T82A/WebRoot/WEB-INF/lib/cxf/jaxb-impl-2.1.7.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/) 
... 


按照网上看说,在jdk1.6.0_05\jre\lib\下新建endorsed文件夹,放入jaxb-api.jar还是没有效果,经过我的仔细阅读E文,纠正这个错误,如果是Tomcat 5.5,则新建文件路径为“Tomcat 5.5\common\endorsed”,如果是Tomcat 6.0,则新建路径为“Tomcat 6.0\endorsed”。不是在jdk1.6.0_05\jre\lib\


对于找一个jaxb-api.jar的包(比如从netbeans目录下搜索一下),复制到endorsed目录下去.
上面的说法都不错,但在使用myeclipse工具时,注意配置你的环境,若是在jre16下,则应该放到这下面去。


>>
2011-7-12 17:05:49 org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass
信息: Creating Service {http://webservice.qxqpw.com/}HelloWorldService from class com.qxqpw.webservice.HelloWorld
Exception in thread "main" javax.xml.ws.WebServiceException: Could not find wsdl:binding operation info for web method sayHi.
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:113)
at $Proxy14.sayHi(Unknown Source)
at com.qxqp.test.TestWebservice.main(TestWebservice.java:12)
必须加上:@WebService 


>>
服务器接口包与客户端接口包必须相同。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值