编译Apache
./configure --enable-so --enable-rewrite
在Apache的配置文件httpd.conf里增加以下配置信息:
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/index\.html$
RewriteCond %{REQUEST_URI} !^/fan\.html$
RewriteRule ^/(.*) /sorry.html
说明:上面用RewriteCond指令说明的是我们能够处理的URI,对于不能处理的,统一重订向到/sorry.html文件。
安装Xerces
export XERCESCROOT=
例如我把Xerces的源码包下载到/usr/local/src下了,并且在此目录解压缩了,那么就设置此环境变量为
XERCESCROOT=/usr/local/src/xerces-c-src2_2_0
在编译的时候,可能会遇到文件RefArrayVectorOf.c文件的编译错误,此时在文件RefArrayVectorOf.hpp里面的类
RefArrayVectorOf里,添加以下代码:
protected:
bool fAdoptedElems;
unsigned int fCurCount;
TElem** fElemList;
在$XERCESCROOT/src/xerces目录下,执行
./runConfigure -plinux -cgcc -xg++ -minmem -nsocket -tnative -rpthread
make
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
下载的axis-c-1.6b-Linux-trace-src里面有个bug,就是没有configure文件,可通过运行
sh autugen.sh
aclocal和autoconf命令来产生此文件。
编译由WSDL2Ws生成的文件
g++ *.cpp -shared -I/usr/local/src/axis-c-1.6b-Linux-trace-bin/include -L/usr/local/src/axis-c-1.6b-Linux-trace-bin/lib/axis/libaxis_server.so -o Calculator.so
Axis C++默认读取$AXISCPP_DEPLOY/etc/axiscpp.conf此文件为配置文件
特别注意:在axiscpp.conf文件中配置的路径或者文件,apache一定要有权限去操作,例如apache是以nobody用户来运行的,那么nobody要有权限去操作在axiscpp.conf文件路中配置的路径或者文件。
设置环境变量AXISCPP_STARTUP_TRACE,则打开了Axis C++的跟踪信息记录功能,方便调试。但是此环境变量对应的文件,apache也要有权限去操作。
特别注意:如果访问的时候用访问,则上面出现的wsdl链接是错误的,如果用访问,则上面出现的wsdl链接是正确的。
由wsdl文件生成所需要的文件:
java org.apache.axis.wsdl.wsdl2ws.WSDL2Ws $AXISCPP_DEPLOY/wsdls/Calculator.wsdl -lc++ -sserver -ojizhao
修改里面的实现文件,然后
编译由上面产生的所有cpp文件
g++ -shared -I/usr/local/src/axis-c-1.6b-Linux-trace-bin/include -o Calculator.so *.cpp
Client端的操作
现把服务对应的wsdl文件复制到当前目录下(可直接复制或者从Web地址上得到,再保存为对应的wsdl文件),然后生成客户端调用需要的stub,其实是对Web Service提供的服务的一个封装,提供了一个封装类,由客户端程序直接使用。
java org.apache.axis.wsdl.wsdl2ws.WSDL2Ws Calculator.wsdl -lc++ -sclient
编写客户端程序,然后编译。
g++ *.cpp -I/usr/local/src/axis-c-1.6b-Linux-trace-bin/include -L/usr/local/src/axis-c-1.6b-Linux-trace-bin/lib/axis -ldl -laxis_client -oCalculator_Client
#include
#include "Calculator.hpp"
阅读(2309) | 评论(0) | 转发(0) |