由于本人比较菜先从简单的写起
这次做的功能是JAVA调用C#提供的webservice
接口,将大概的开发方法和遇到的问题总结一下:
1、C#提供的webservice服务地址一般为http://XXXX.com/Web
Service.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!!!
- 在spring里开发cxf客户端应用.zip (21.4 KB)
- 下载次数: 0