webservice客户端开发

由于本人比较菜先从简单的写起

这次做的功能是JAVA调用C#提供的webservice接口,将大概的开发方法和遇到的问题总结一下:


1、C#提供的webservice服务地址一般为http://XXXX.com/WebService .asmx

要获得wsdl文件只需要在服务地址后面加?wsdl即可:如
http://XXXX.com/WebService .asmx?wsdl

2、有了wsdl文件以后我们就可以开发webservice客户端了,具体步骤参见附件(从百度文库里下载的,适用于服务端和客户端分开的情况)

3、参照文档开发完成后报了一个错误如下:
Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Could not find conduit initiator for transport http://schemas.xmlsoap.org/soap/http

从网上大概搜到三种可能解决的方法:
1)cxf jar包冲突
2)spring文件中缺少
<import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
引入
3)jaxws:client的address书写错误

但是这些都没有解决我的问题
注意:其中2)的那三个引入在webservice客户端是不需要的,最好不要引入。

我代码里的问题最后发现是缺少cxf-rt-transports-http.jar导致的。。
maven依赖为:
         <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-transports-http</artifactId>
            <version>${cxf.version}</version>
             <exclusions>
                <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
我们这个项目引入的cxf版本比较低,而且都是分开的jar包,还有一些集成到了其他的公共jar里,而且我也不熟悉到底要引入什么jar,最后导致了这个问题。。。

不同的问题报的错是同一个,而且错误提示信息中可以获得的信息量也不大,对于我们初学者来说是挺为难的哦

over!!!  

猜你喜欢

转载自q719253549.iteye.com/blog/2092328