Axis 的WebService环境搭建.docx
《Axis 的WebService环境搭建.docx》由会员分享,可在线阅读,更多相关《Axis 的WebService环境搭建.docx(14页珍藏版)》请在冰豆网上搜索。
Axis的WebService环境搭建
搭建JavaWebService接口服务环境搭建
第一步:
安装环境:
到Apache官方网站下载Axis2插件包
到Eclipse官方网站上去下载下面三个包
将这5个包拷贝到MyEclipse安装目录下面的dropins目录下,重新启动myeclipse,在file->new->other中可看到Axis2Wizards,axis2插件安装成功。
如下图
到apache官网上下载AxisWar包:
(War包的版本一定要和Axis2的插件包一致)
A.将axis2.war包拷贝到tomcat安装目录下的webapps目录中。
B.启动Tomcat打开浏览器输入http:
//localhost:
8080/axis2,如果能看到下面的页面则说明已经安装完成。
第二步:
正式开发
环境准备好后,先从一个简单的例子开始。
以便对使用Axis来开发Webservices的大致流程有个了解。
通过开发服务端类来发布服务
新建webproject:
sayhello
首先我们先建一个包在src右键new->package,取名com
在这个包下新建一个类Hello
packagecom;
/**服务端
*@authortower
*
*/
publicclassHello{
publicStringhelloworld(Stringname){
return"helloworld,"+name;
}
}
第三步:
通过wsdl生成aar,发布服务
再选择前述生成的wsdl,
选择next
这个就是你命名的服务名
最终将aar文件包输出到WEB-INF下,并命名
将aar文件复制到tomcat/webapps/axis2/WEB-INF/services目录下。
启动tomcat将会看到所发布的服务:
HelloService
浏览器输入http:
//127.0.0.1:
8080/axis2/services/listServices
这个显示的是你服务器的名字
这个显示的是你可调用的方法
第四步:
开发客户端stub类来调用服务
通过wsdl生成java客户端类:
这个地方的路径填的是你在点了HelloService之后,然后你就会看到这个http:
//127.0.0.1:
8080/axis2/services/HelloService?
wsdl你就把它放到这个里面就可以了
不然的话下面这个会没有显示的。
只有这个路径写对了这个对话框才会有下面的这些显示
勾这个
这个之前是默认的
再next
最终生成客户端类:
HelloStub.java
(如果出错,查看是否将axis的lib文件夹中的所有jar文件复制到此工程webroot/web-inf/lib中记住是所有的,因为你不知道是那一个具体的包)
编写服务端:
publicclassHello{
publicStringhelloworld(Stringname){
return"helloworld"+name;
}
}
然后再写deploy.wsdd文件
xmlns="http:
//xml.apache.org/axis/wsdd/"
xmlns:
java=""target="_blank">http:
//xml.apache.org/axis/wsdd/providers/java">
RPC">
在DOS下转换目录到%TOMCAT_HOME%\webapps\axis\WEB-INF,命令:
java-cp%AXISCLASSPATH%org.apache.axis.client.AdminClientdeploy.wsdd
你会发现目录下多了一个server-config.wsdd文件,这就是AXIS的配置文件,以后所有的服务发布描述都会在里面找到
其实说了这多,就是为了得到一个server-config.wsdd(这些你自己可以去试试,因为我没成功)
所以我就把一个成功的server-config.wsdd拿来改,最后发现也可以实现功能.如果大家为了快,也可以这样做
以下是server-config.wsdd的代码这个文件,是放到WEB-INF目录下和web.xml一起
xmlversion="1.0"encoding="UTF-8"?
>
//xml.apache.org/axis/wsdd/"xmlns:
java="http:
//xml.apache.org/axis/wsdd/providers/java">
org.apache.axis.handlers.http.URLMapper"name="URLMapper"/>
RPC">这个地方是你写的服务类名
//你要改的就是这.这写上要调用的类.就可以
//这*代表所有的方法
然后在web.xml加上下面这断代码是你给外界访问的服务路径(没有写这些代码你去试试看看可不可以访问,肯定是:
”无法找到xml样式,请点击刷新”)
AxisServlet
org.apache.axis.transport.http.AxisServlet
AxisServlet
/services/*
这样差不多一个webservice完成了
然后在IE上测试下
http:
//localhost:
8080/sayhello/services
再写个测试类调用服务器:
packagetest;
importjava.rmi.RemoteException;
importorg.apache.axis.client.Call;
importorg.apache.axis.client.Service;
importcom.Helloworld;
importcom.HelloworldResponse;
importcom.client.HelloServiceStub;
publicclasshelloTest{
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub下面两个测试方法任选一个就可以了
/*try{
//调用HelloService服务
HelloServiceStubhelloStub=newHelloServiceStub("http:
//127.0.0.1:
8080/axis2/services/HelloService");
Helloworldhelloworld=newHelloworld();
helloworld.setName("O(∩_∩)O~");
HelloworldResponseresp=helloStub.helloworld(helloworld);
System.out.println(resp.get_return());
}catch(RemoteExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}*/
Stringurl="http:
//localhost:
8080/sayhello/services/Hello.jws";
Serviceservice=newService();
Callcall;
try{
call=(Call)service.createCall();
call.setTargetEndpointAddress(new.URL(url));
call.setOperationName("helloworld");//设置调用的方法名
Stringres=(String)call.invoke(newObject[]{"aaaaaa"});//设置参数
System.out.println(res);
}catch(Exceptione){
//TODO:
handleexception
e.printStackTrace();
}
}
}
输出看到“helloword,aaaaa”就说明你已成功调用
内网访问可以输入
http:
//被访问人的IP:
8080/axis2/services/HelloService?
wsdl
比如我给别人访问的地址:
http:
//192.168.0.102:
8080/axis2/services/HelloService?
wsdl
测试下,如果成功就会显示xml格式的文件
如果完成了这一步,那么祝贺你成功了