一、Eclipse建立Web Service
1、下载并测试axis组件。
①axis组件的下载地址为http://axis.apache.org/axis/,下载最先版即可。
②将下载下来的axis组件解压缩,将目录“D:\Tools\axis-bin-1_4\axis-1_4\webapps”下的axis文件夹原封不动的拷贝到tomcat下的webapps下。
③测试axis组件。访问http://localhost:8080/axis/时出现如下
![](http://hi.csdn.net/attachment/201112/1/0_1322747912i6S3.gif)
④点击Validation超链接时出现以下信息
![](http://hi.csdn.net/attachment/201112/1/0_132274797869PO.gif)
证明你已经成功的将axis组件加入到tomcat服务器当中。
2、使用Eclipse对已经写好的程序进行接口映射
①右击项目,点击other
![](http://hi.csdn.net/attachment/201112/1/0_1322748389AqSM.gif)
②选择Web Sercice选项。选择要做为接口提供服务的类。
![](http://hi.csdn.net/attachment/201112/1/0_1322748429YO3s.gif)
③点击next到下一选项
![](http://hi.csdn.net/attachment/201112/1/0_1322748709J7b1.gif)
④点击next得到下一选项卡。选择要作为接口的方法(因为这个类只写了一个方法,故只有一个方法可选)。
![](http://hi.csdn.net/attachment/201112/1/0_13227488388tOe.gif)
⑤点击next。eclipse就会自动生成WS相关文件。同时进入下一个界面。点击Start server即可。
![](http://hi.csdn.net/attachment/201112/1/0_132274902199zW.gif)
在服务器启动之后,你的项目当中会多出以下文件。同时Eclipse会自动想web.xml文件当中写入相关信息。
![](http://hi.csdn.net/attachment/201112/1/0_1322749175Mm4M.gif)
⑥将整个项目打成war包,放入tomcat下的webapps文件夹下。
![](http://hi.csdn.net/attachment/201112/1/0_1322749375nIZ7.gif)
点击WAR file之后
![](http://hi.csdn.net/attachment/201112/1/0_1322749386Vv5d.gif)
好了,下载我们的Web service已经部署好,现在让我们测试以下。
⑦测试web service ,打开tomcat服务器,在chrome地址栏输入以下信息http://localhost:8080/ASE/services/WebServices?wsdl,我们看到以下时,说明已经部署成功。
![](http://hi.csdn.net/attachment/201112/1/0_1322749656C09J.gif)
二、建立类,访问web service
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
public class ClientTest {
/**
* @param args
*/
public static void main(String[] args) {
try {
String endpoint = "http://localhost:8080/ASE/services/WebServices?wsdl";
// 直接引用远程的wsdl文件
// 以下都是套路
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(endpoint);
call.setOperationName("getSearchResult");// WSDL里面描述的接口名称
call.addParameter("shiyan",
org.apache.axis.encoding.XMLType.XSD_STRING,
javax.xml.rpc.ParameterMode.IN);// 接口的参数
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);// 设置返回类型
String temp = "测试人员";
String result = (String) call.invoke(new Object[] { temp });
// 给方法传递参数,并且调用方法
System.out.println("result is " + result);
} catch (Exception e) {
System.err.println(e.toString());
}
}
}
import org.apache.axis.client.Service;
public class ClientTest {
/**
* @param args
*/
public static void main(String[] args) {
try {
String endpoint = "http://localhost:8080/ASE/services/WebServices?wsdl";
// 直接引用远程的wsdl文件
// 以下都是套路
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(endpoint);
call.setOperationName("getSearchResult");// WSDL里面描述的接口名称
call.addParameter("shiyan",
org.apache.axis.encoding.XMLType.XSD_STRING,
javax.xml.rpc.ParameterMode.IN);// 接口的参数
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);// 设置返回类型
String temp = "测试人员";
String result = (String) call.invoke(new Object[] { temp });
// 给方法传递参数,并且调用方法
System.out.println("result is " + result);
} catch (Exception e) {
System.err.println(e.toString());
}
}
}
成功!