AXIS是开源的WS运行引擎,是SOAP协议的一个实现。来源于Apache的一个开源项目Apache SOAP.分为1.X 和2.X.两个的体系结构和使用上有较大的区别。 1。X更加稳定一些。它提供了两种发布方式: 即时发布 与 定制发布.
(1)下载与安装
下载地址:http://www.apache.org/dyn/closer.cgi/ws/axis/1_4. 如下载axis-bin-1_4.rar
Axis安装要求必须先安装web服务器. 此处采用apache-tomcat-6.0.29. 将axis-bin-1_4.rar解压,将webapps下的axis目录拷贝到tomcat 的webapps下. 启动tomcat后,访问 http://localhost:8888/axis/ , 打开页面后点击 Validation 超级链接, 查看"Needed Components"和"Optional Components"下,是否有提示缺少包. 有则根据后边相应的地址下载后,再拷到 axis的lib目录下. axis首页见下图:
(2)开发WebService 之即时发布
开发者将JAVA源文件的扩展名改为jws拷贝到%TOMCAT-HOME%/webapps/axis/下即可完成所有发布工作。AXIS的编译引擎会处理接下来的所有事情。
服务端:(注意类不能带包名)
public class HiHelloJWS {
public String hiHello( String name ) {
String result = " Hi.. " + name + "!";
System.out.println( result );
return result;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
HiHelloJWS jws = new HiHelloJWS();
jws.hiHello( "axis1.4" );
}
}
扩展名改为jws后拷到axis/webapps下。重启TOMCAT后访问http://localhost:8888/axis/HiHelloJWS.jws。点击
Click to see the WSDL 可以看WSDL文档,代发布成功。
客户端:
import javax.xml.namespace.QName;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
public class ClientHiHelloJWS {
public static void main(String[] args) {
try{
String url = "http://localhost:8888/axis/HiHelloJWS.jws";
Service service = new Service();
Call call = (Call)service.createCall();
call.setTargetEndpointAddress( url );
call.setOperationName( new QName( url, "hiHello" ) );
String result = (String) call.invoke( new Object[]{ "axis1.4" } );
System.out.println( result );
} catch( Exception e ) {
e.printStackTrace();
}
}
}
运行结果:
Hi.. axis1.4!
这种方式虽简单但牺牲了灵活性。 如果手里只有.class 或jar包,JWS也不能满足你的要求。最痛苦的是不支持发布带包路径的类。故这种方式不实用。
(3)定制发布(WSDD):定制发布需要你编写一个WSDD,在实际开中的不二选择。
服务端: 将HiHelloWSDD.class 拷贝到/%TOMCAT_HOME%/webapps/axisWs/WEB-INF/classes/axis/wsdd/下
package axis.wsdd;
public class HiHelloWSDD {
public String hiHello( String name ) {
String result = " Hi.. " + name + "!";
System.out.println( result );<