gsoap CXF2.7.5 ssh vc++ webservice应用实例(一)
webservice的一个大亮点就是跨平台。项目中要求c++和jee相结合的系统。我想采用webservice来交互信息。
c++做webservice应用,我选择了gsoap;这套系统是B/S模式的应用系统,我选择了ssh三大框架来做。
有一项技术一直没有应用过,经过一天的尝试,终于走通了流程。c++和jee之间实现了相互调用。
在这过程中,我网上查了许多资料,用了很多的关键词搜索,一直没有找到我想要的答案。特别是CXF做客户端的,几乎都是官网文档的部分翻译。都简单的写了一下怎么做,让人摸不着头脑。最后,从一个简单的源码受到启示。尝试成功。
C++的webservice服务端、客户端;jee的服务端、客户端。共有4个项目,为了测试相互调用。所以分了四篇博文。
源码在完成博文后传到csdn资源中供下载。
给自己留个记录,也希望能帮到跟我一样迷茫中的初学者。
首先是WSDL,4个项目使用同一个WSDL。我是初学者,不会编辑WSDL文档,所以就先用CXF代码优先做个服务器端,成功后产生WSDL,再给其它3个项目使用。
我之前的一篇博文中有使用描述(
在图中还没有开始webservice的情况。
建立org.biboheart.webservice包,类名:HelloWorld
建立接口后实现
HelloWorld.java中的内容:
<?xml version="1.0" encoding='UTF-8'?><wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://webservice.biboheart.org/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:ns1="http://schemas.xmlsoap.org/soap/http" name="HelloWorld" targetNamespace="http://webservice.biboheart.org/"> <wsdl:types><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://webservice.biboheart.org/" elementFormDefault="unqualified" targetNamespace="http://webservice.biboheart.org/" version="1.0"><xs:element name="sayHello" type="tns:sayHello"></xs:element><xs:element name="sayHelloResponse" type="tns:sayHelloResponse"></xs:element><xs:complexType name="sayHello"> <xs:sequence> <xs:element minOccurs="0" name="name" type="xs:string"></xs:element> </xs:sequence> </xs:complexType><xs:complexType name="sayHelloResponse"> <xs:sequence> <xs:element minOccurs="0" name="return" type="xs:string"></xs:element> </xs:sequence> </xs:complexType></xs:schema> </wsdl:types> <wsdl:message name="sayHelloResponse"> <wsdl:part element="tns:sayHelloResponse" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="sayHello"> <wsdl:part element="tns:sayHello" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:portType name="HelloWorld"> <wsdl:operation name="sayHello"> <wsdl:input message="tns:sayHello" name="sayHello"> </wsdl:input> <wsdl:output message="tns:sayHelloResponse" name="sayHelloResponse"> </wsdl:output> </wsdl:operation> </wsdl:portType> <wsdl:binding name="HelloWorldSoapBinding" type="tns:HelloWorld"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"></soap:binding> <wsdl:operation name="sayHello"> <soap:operation soapAction="" style="document"></soap:operation> <wsdl:input name="sayHello"> <soap:body use="literal"></soap:body> </wsdl:input> <wsdl:output name="sayHelloResponse"> <soap:body use="literal"></soap:body> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="HelloWorld"> <wsdl:port binding="tns:HelloWorldSoapBinding" name="HelloWorldImplPort"> <soap:address location="http://localhost:8080/CXFServerDemo/webServices/HelloWorld"></soap:address> </wsdl:port> </wsdl:service></wsdl:definitions>
浏览器中选择保存,把资源保存为.wsdl文件。也可以直接复制上面的代码保存为.wsdl文件进行开发使用。
CXF 服务已经发布完成,下面的用这个WSDL文件在C++方用GSOAP做webservice服务。
该上班了…… 晚上再续