继上一篇《Web Service之Axis1.x入门一》后,这是第二篇,上一篇主要讲的是即时发布这种方式,那么我们这一篇将会讲解定制发布的方式,而且以IDE的方式进行开发。
开发环境
1.MyEclipse 6.5
2.其他与上一篇的一样
开发自己的Web Service
服务端
1.在MyEclipse里面新建一个Web工程
2.拷贝解压后axis-1_4\webapps\axis\的所有目录,当然有的可以不用拷贝
3.黏贴第二步拷贝的数据到所建的工程的WebRoot目录下
4.新建一个服务提供类
package com.tankiy.service;
/**
* 服务提供类
* @author Tankiy
* @since 2011
*/
public class Hello {
public String sayHello(String name) {
return "Hello:" + name;
}
}
5.在/WebRoot/WEB-INF新建server-config.wsdd文件(这里可以用工具自动生成,由于本人较懒,就没有配)
添加的内容如下:
<?xml version="1.0" encoding="UTF-8"?> <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper" /> <transport name="http"> <requestFlow name="RequestFlow1"> <handler name="Handler1" type="URLMapper" /> <handler name="Handler2" type="java:org.apache.axis.handlers.http.HTTPAuthHandler" /> </requestFlow> </transport> <service name="Hello" provider="java:RPC" use="literal"> <!-- *是该服务类提供所有的方法,也可以只写sayHello,但当该类存在多个方法时,那么只提供sayHello这个方法 --> <parameter name="allowedMethods" value="*" /> <parameter name="wsdlPortType" value="Hello" /> <parameter name="wsdlServicePort" value="Hello" /> <!-- 所提供的类 --> <parameter name="className" value="com.tankiy.service.Hello" /> <parameter name="wsdlServiceElement" value="Hello" /> </service> </deployment>
6.在tomcat里面发布,进行访问wsdl,地址http://localhost:8080/WebServices/services/Hello?wsdl
客户端
在昨天的客户端工程里面的Client类修改以下
public class Client
public static void main(String[] args) {
//目标地址,也就是wsdl的地址
String wsdlURL = "http://localhost:8080/WebServices/services/Hello?wsdl"; //只是这里修改下
//提供接口名
String serviceName = "sayHello";
//创建服务对象
Service service = new Service();
//创建调用对象
Call call = service.createCall();
//设置调用目标地址
call.setTargetEndpointAddress(wsdlURL);
//设置操作名称
call.setOperationName(new QName(wsdlURL, serviceName));
//传递参数
String result = (String)call.invoke(new Object[]{"Tankiy"});
System.out.println(result);
}
运行控制台,出现的结果Hello:Tankiy,恭喜你,客户端调用成功。
下一节将讲述传递JavaBean对象。