利用AXIS添加WebService
来源:http://blog.csdn.net/ronghao100/archive/2005/06/08/390530.aspx 前天头告诉我用SOAP WEB服务开发一个客户程序,用来与企业内部的ERP进行交互。晚上赶快找相关的资料猛看,总算对SOAP有了一定的认识。干程序员这行真不容易,好象得不停地学习新东西,一不小心就被淘汰:(不过学习也是个很有意思的事情。好了,废话少说,让我们开始吧。 一、软件环境 ?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 public class HelloWorld { 我们的第一种发布方式: 将HelloWorld.java拷贝到%TOMCAT_HOME%/webapps/axis下,然后将其改名为HelloWorld.jws,这样AXIS就自然将其发布了。现在写个客户端程序访问一下: TestClient.java import org.apache.axis.client.Call; import javax.xml.rpc.ParameterMode; public class TestClient ?????? Service? service = new Service();? //创建一个Service实例,注意是必须的! ???? 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"> 在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; public class HelloClient ?????? String endpoint = "http://localhost:" +"8080"+ "/axis/services/HelloWorld";//注意!差别仅仅在这里!! ?????? Service? service = new Service(); ???????? String res = (String) call.invoke( new Object[] {} ); ???????????????????????? System.out.println( res );?? }} ?(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |