一、软件环境
1、axis-1_2 (从apache网站下载最新axis-bin-1_2.zip解压即可)
2、Tomcat5.0
3、JDK5.0
二、相关配置
1、在你的%TOMCAT_HOME%/common/lib下需要加入三个包 activation.jar、mail.jar、tools.jar
2、环境变量设置
AXIS_HOME 即axis-bin-1_2.zip解压的目录(我的是在F:/soap/axis-1_2)
AXIS_LIB 即 %AXIS_HOME%/lib
AXISCLASSPATH 即 %AXIS_LIB%/axis.jar;%AXIS_LIB%/commons-discovery-0.2.jar;%AXIS_LIB%/commons-logging-1.0.4.jar;
1、axis-1_2 (从apache网站下载最新axis-bin-1_2.zip解压即可)
2、Tomcat5.0
3、JDK5.0
二、相关配置
1、在你的%TOMCAT_HOME%/common/lib下需要加入三个包 activation.jar、mail.jar、tools.jar
2、环境变量设置
AXIS_HOME 即axis-bin-1_2.zip解压的目录(我的是在F:/soap/axis-1_2)
AXIS_LIB 即 %AXIS_HOME%/lib
AXISCLASSPATH 即 %AXIS_LIB%/axis.jar;%AXIS_LIB%/commons-discovery-0.2.jar;%AXIS_LIB%/commons-logging-1.0.4.jar;
%AXIS_LIB%/jaxrpc.jar;%AXIS_LIB%/saaj.jar;%AXIS_LIB%/log4j-1.2.8.jar;也就是把%AXIS_LIB%下所用JAR文件都导入
三、实验一下
在%AXIS_HOME%/webapps下找到axis文件夹,将其整个拷贝到%TOMCAT_HOME%/webapps下,启动
Tomcat,打开浏览器访问 http://localhost:8080/axis/,出现以下页面说明你配置成功了。很简单吧:)
四、发布我们的第一个程序
第一个程序简单的返回HELLO WORLD!
我们的第一种发布方式:
将HelloWorld.java拷贝到%TOMCAT_HOME%/webapps/axis下,然后将其改名为HelloWorld.jws,这样AXIS就自然将其发布了。现在写个客户端程序访问一下:
我的测试是在jbuilder2005中,注意项目中要导入其自带的AXIS包(当然应该把其中JAR文件替换一下),可以看到程序返回了 "HELLO WORLD!"
可以看到在AXIS里发布服务其实是一件很容易的事,这是因为这个服务很简单的原因:)下面我们介绍第二种发布方式,这是常用的。
我们的第二种发布方式:
1、将HelloWorld.java编译成HelloWorld.class,放到%TOMCAT_HOME%/webapps/axis/WEB-INF/classes下
2、在%TOMCAT_HOME%/webapps/axis/WEB-INF下新建deploy.wsdd文件,即SOAP服务发布描述文件
在DOS下转换目录到%TOMCAT_HOME%/webapps/axis/WEB-INF,命令:
你会发现目录下多了一个server-config.wsdd文件,这就是AXIS的配置文件,以后所有的服务发布描述都会在里面找到。(当然,你可以直接修改它,不用再写deploy.wsdd)然后打开浏览器http://localhost:8080/axis/servlet/AxisServlet,你就会看到你的服务已发布
同样用客户端程序访问一下:(注意和上边的差别!!)
三、实验一下
在%AXIS_HOME%/webapps下找到axis文件夹,将其整个拷贝到%TOMCAT_HOME%/webapps下,启动
Tomcat,打开浏览器访问 http://localhost:8080/axis/,出现以下页面说明你配置成功了。很简单吧:)
四、发布我们的第一个程序
第一个程序简单的返回HELLO WORLD!
我们的第一种发布方式:
将HelloWorld.java拷贝到%TOMCAT_HOME%/webapps/axis下,然后将其改名为HelloWorld.jws,这样AXIS就自然将其发布了。现在写个客户端程序访问一下:
TestClient.java
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import javax.xml.rpc.ParameterMode;
public class TestClient
{
public static void main(String [] args) throws Exception {
String endpoint = " http://localhost: " + " 8080 " + " /axis/HelloWorld.jws " ; // 指明服务所在位置
Service service = new Service(); // 创建一个Service实例,注意是必须的!
Call call = (Call) service.createCall(); // 创建Call实例,也是必须的!
call.setTargetEndpointAddress( new java.net.URL(endpoint) ); // 为Call设置服务的位置
call.setOperationName( " sayHello " ); // 注意方法名与HelloWorld.java中一样!!
String res = (String) call.invoke( new Object[] {} ); // 返回String,没有传入参数
System.out.println( res );
}
}
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import javax.xml.rpc.ParameterMode;
public class TestClient
{
public static void main(String [] args) throws Exception {
String endpoint = " http://localhost: " + " 8080 " + " /axis/HelloWorld.jws " ; // 指明服务所在位置
Service service = new Service(); // 创建一个Service实例,注意是必须的!
Call call = (Call) service.createCall(); // 创建Call实例,也是必须的!
call.setTargetEndpointAddress( new java.net.URL(endpoint) ); // 为Call设置服务的位置
call.setOperationName( " sayHello " ); // 注意方法名与HelloWorld.java中一样!!
String res = (String) call.invoke( new Object[] {} ); // 返回String,没有传入参数
System.out.println( res );
}
}
我的测试是在jbuilder2005中,注意项目中要导入其自带的AXIS包(当然应该把其中JAR文件替换一下),可以看到程序返回了 "HELLO WORLD!"
可以看到在AXIS里发布服务其实是一件很容易的事,这是因为这个服务很简单的原因:)下面我们介绍第二种发布方式,这是常用的。
我们的第二种发布方式:
1、将HelloWorld.java编译成HelloWorld.class,放到%TOMCAT_HOME%/webapps/axis/WEB-INF/classes下
2、在%TOMCAT_HOME%/webapps/axis/WEB-INF下新建deploy.wsdd文件,即SOAP服务发布描述文件
deploy.wsdd
< deployment xmlns = " http://xml.apache.org/axis/wsdd/ " xmlns:java = " http://xml.apache.org/axis/wsdd/providers/java " >
< service name = " HelloWorld " provider = " java:RPC " >
< parameter name = " className " value = " HelloWorld " />
< parameter name = " allowedMethods " value = " sayHello " />
</ service >
</ deployment >
< deployment xmlns = " http://xml.apache.org/axis/wsdd/ " xmlns:java = " http://xml.apache.org/axis/wsdd/providers/java " >
< service name = " HelloWorld " provider = " java:RPC " >
< parameter name = " className " value = " HelloWorld " />
< parameter name = " allowedMethods " value = " sayHello " />
</ service >
</ deployment >
在DOS下转换目录到%TOMCAT_HOME%/webapps/axis/WEB-INF,命令:
java
-
cp
%
AXISCLASSPATH
%
org.apache.axis.client.AdminClient deploy.wsdd
你会发现目录下多了一个server-config.wsdd文件,这就是AXIS的配置文件,以后所有的服务发布描述都会在里面找到。(当然,你可以直接修改它,不用再写deploy.wsdd)然后打开浏览器http://localhost:8080/axis/servlet/AxisServlet,你就会看到你的服务已发布
同样用客户端程序访问一下:(注意和上边的差别!!)
HelloClient.java
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
public class HelloClient
{
public static void main(String [] args) throws Exception {
String endpoint = " http://localhost: " + " 8080 " + " /axis/services/HelloWorld " ; // 注意!差别仅仅在这里!!
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress( new java.net.URL(endpoint) );
call.setOperationName( " sayHello " );
String res = (String) call.invoke( new Object[] {} );
System.out.println( res );
}
}
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
public class HelloClient
{
public static void main(String [] args) throws Exception {
String endpoint = " http://localhost: " + " 8080 " + " /axis/services/HelloWorld " ; // 注意!差别仅仅在这里!!
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress( new java.net.URL(endpoint) );
call.setOperationName( " sayHello " );
String res = (String) call.invoke( new Object[] {} );
System.out.println( res );
}
}
HelloWorld.java
public class HelloWorld {
public String sayHello()
{
return " HELLO WORLD! " ;
}
}
public class HelloWorld {
public String sayHello()
{
return " HELLO WORLD! " ;
}
}