C/C++与WEBSERVICE


C/C++与WEBSERVICE Start:2011.03.06 Updated:2011.03.08 王凡(wangfan) wf141732@sohu.com woshiwangfan@gmail.com http://t.qq.com/lingmengfei 版本 修改日期 内容 1.0 2011.03.08 创建 1. 简介 1.1. 环境信息 Gsoap:2.8 1.2. 相关文档 《LinuxCGI》 2. 软件准备 2.1. Gsoap2下载 地址: http://downloads.sourceforge.net/project/gsoap2/gSOAP/gsoap_2.8.1.zip?r=h 2 ttp%3A%2F%2Fsourceforge.net%2Fprojects%2Fgsoap2%2Fdevelop&ts=12993 99273&use_mirror=nchc 下载后执行标准的配置编译 cd gsoap2 ./configure ./make ./make install 2.2. 服务器准备 参照《Linux CGI》 3. 一个简单的例子 做一个获取当前时间的例子 3.1. 服务端 新增文件currentTime.h // File: currentTime.h //gsoap ns service name: currentTime //gsoap ns service namespace: urn:currentTime //gsoap ns service location: http://192.168.115.129:89/ws/currentTime.cgi int ns__currentTime(time_t& response); 在上面注释的部分都是丌可 或缺的,其中双下划线是由于和java通信的标准只能采用 Document/literal格式的标准。另外location是到时候传输给服务器的接口部分。 在soap2目录/home/wangfan/gsoap2/gsoap/bin/linux386下面拷贝soapcpp2到 建立的add.h目录下面,然后编译add文件 ./soapcpp2 currentTime.h 编译完成后会在当前目录下面生成很多文件 3 再来构建服务器代码,即处理逻辑部分 // File: currentTime.cpp #include "soapH.h" // include the generated declarations #include "currentTime.nsmap" // include the XML namespace mappings int main() { // create soap context and serve one CGI-based request: return soap serve(soap new()); } int ns currentTime(struct soap *soap, time t& response) { response = time(0); return SOAP OK; } 然后编译成cgi soapcpp2 -S currentTime.h c++ -o currentTime.cgi currentTime.cpp soapC.cpp soapServer.cpp stdsoap2.cpp 3.2. Jdeveloper调用 使用jdeveloper来生成客户端 4 5 6 调用的代码写在client文件中 7 package currenttime; import com.bea.staxb.types.XMLGregorianCalendar; import java.util.GregorianCalendar; import javax.xml.ws.WebServiceRef; // !THE CHANGES MADE TO THIS FILE WILL BE DESTROYED IF REGENERATED! // This source file is generated by Oracle tools // Contents may be subject to change // For reporting problems, use the following // Version = Oracle WebServices (11.1.1.0.0, build 101221.1153.15811) public class CurrentTimeClient { @WebServiceRef private static CurrentTime_Service currentTime_Service; public static void main(String [] args) { currentTime_Service = new CurrentTime_Service(); CurrentTimePortType currentTimePortType = currentTime_Service.getCurrentTime(); System.out.println(currentTimePortType.currentTime().toString()); // Add your code to call the desired methods. 8 } } 4. 常见问题 4.1. Method 'current Time' not implemented: method name or namespace not recognized 注意在server的时候要用 #include currentTime.nsmap
还剩7页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 6 金币 [ 分享pdf获得金币 ] 1 人已下载

下载pdf

pdf贡献者

dataweng

贡献于2012-10-10

下载需要 6 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf