Chinaunix首页 | 论坛 | 博客
  • 博客访问: 735277
  • 博文数量: 769
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 4985
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-15 16:37
文章分类

全部博文(769)

文章存档

2011年(1)

2008年(768)

我的朋友

分类:

2008-10-15 16:40:33

      一.系统环境 2
    二.gSOAP的简要使用例子 2
    三.图示说明 6
    四.要注意的问题 6
    五.参考文档 7
    六.备注 7

    一.系统环境
    Linux操作系统kernel2.4.2,安装gsoap2.6到目录/usr/local/gsoap
    二.gSOAP的简要使用例子
    下面是一个简单的例子,实现一个加法运算的WebService,具体功能是cli端输入num1和num2,server端返回一个num1和num2相加的结果sum。

    1. 首先,我们需要做的是写一个函数声明文件,来定义接口函数ns__add,文件名字为add.h,内容如下:

    //gsoap ns service name: add
    //gsoap ns service namespace:
    //gsoap ns service location:
    //gsoap ns service executable: add.cgi
    //gsoap ns service encoding: encoded
    //gsoap ns schema namespace: urn:add

    int ns__add( int num1, int num2, int* sum );

    2. 然后我们需要创建文件Makefile,从而利用gsoapcpp2工具由add.h生成一些.xml文件、.c文件和.h文件,这些文件均为自动生成,Makefile的内容如下:

    GSOAP_ROOT=/usr/local/gsoap
    WSNAME=add
    CC=g++ -g -DWITH_NONAMESPACES
    INCLUDE=-I $(GSOAP_ROOT)
    SERVER_OBJS=$(WSNAME)C.o $(WSNAME)Server.o stdsoap2.o
    CLIENT_OBJS=$(GSOAP_ROOT)/env/envC.o $(WSNAME)ClientLib.o stdsoap2.o
    ALL_OBJS=${WSNAME}server.o $(WSNAME)C.o $(WSNAME)Server.o ${WSNAME}test.o ${WSNAME}client.o $(WSNAME)ClientLib.o

    #总的目标
    all:server

    ${WSNAME}.wsdl:${WSNAME}.h
    $(GSOAP_ROOT)/soapcpp2 -p$(WSNAME) -i -n -c ${WSNAME}.h

    stdsoap2.o:$(GSOAP_ROOT)/stdsoap2.c
    $(CC) -c $?

    #编译一样生成规则的.o文件
    $(ALL_OBJS):%.o:%.c
    $(CC) -c $? $(INCLUDE)

    #编译端
    server:Makefile ${WSNAME}.wsdl ${WSNAME}server.o $(SERVER_OBJS)
    $(CC) ${WSNAME}server.o $(SERVER_OBJS) -o ${WSNAME}server

    #编译客户端
    client:Makefile ${WSNAME}.wsdl ${WSNAME}client.c ${WSNAME}test.c $(ALL_OBJS) stdsoap2.o

[1]    

【责编:landy】

--------------------next---------------------

阅读(348) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~