开始搞Web Service,用了CXF,下载了2.0.8和2.1.1,开始弄的是2.1.1,发现有问题:
java.lang.NoSuchMethodError: org.jaxen.BaseXPath.<init>(Ljava/lang/String;Lorg/jaxen/Navigator;)V
怎么也发布不成功,后来修改成2.0.8,发现可以了,通过浏览器访问什么的都没有问题,然后从wsdl生成stubs后,运行unit test有问题:
java.lang.IncompatibleClassChangeError
at org.apache.cxf.wsdl11.WSDLServiceBuilder.copyExtensionAttributes(WSDLServiceBuilder.java:120)
at org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(WSDLServiceBuilder.java:228)
at org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(WSDLServiceBuilder.java:153)
at org.apache.cxf.wsdl11.WSDLServiceFactory.create(WSDLServiceFactory.java:117)
at org.apache.cxf.jaxws.ServiceImpl.initializePorts(ServiceImpl.java:138)
at org.apache.cxf.jaxws.ServiceImpl.<init>(ServiceImpl.java:129)
at org.apache.cxf.jaxws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:55)
at javax.xml.ws.Service.<init>(Service.java:57)
唉,步履维艰啊
2008年8月21日更新:
发现这些都是Classpath搞的,因为原来的工程中也包含了老版本的Web Service的包,我们这个工程在原来的工程里面,但是我发布的时候没有包含原来的jar,但是Eclipse工程里面是依赖的,所以Server运行没有问题,在Eclipse跑单元测试的时候有问题。
2.1.1的问题是DOM4J.JAR搞的,里面也包含了jaxen的类,把那些类从jar包里面去掉问题解决
发表评论