设为首页 收藏本站
查看: 539|回复: 0

[经验分享] JDK tomcat Axis的安装及使用

[复制链接]

尚未签到

发表于 2017-1-28 15:59:45 | 显示全部楼层 |阅读模式
  一.简介 什么是SOAP?SOAP是一个应用程序间的基于XML的通信工具和规范.SOAP最初由MicroSoft和Userland公司开发,已经演化了好几个版本,当前的版本SOAP1.1正飞速发展.W3C的XML协议工作组正努力把它发展为一个真正的开发的标准.SOAP1.2草案已经发布,它能澄清 1.1版规范的容易混淆的地方.
  什么是Axis?Axis总体上是一个SOAP引擎,但又不仅仅是个引擎,它还:1)是一个简单的独立的服务器2)是一个可插入到servlet引擎(如Tomcat)中的服务3)可扩展的支持WSDL4)能根据WSDL产生JAVA文件/类5)包括一些例子程序6)包括一个可以监控TCP/IP包的工具
  Axis起源于IBM的SOAP4J,是Apache SOAP的第三代产品,相对于以前的版本,它有如下特性:1)快速,它使用了基于事件的SAX解析机制.2)灵活,用户可以灵活定制扩展.3)稳定,接口将会变动很小.4)基于组件开发.5)支持WSDL1.1
  二.准备应用Axis开发Web Services,你需要安装如下软件: 1.jdk1.5 2.安装Tomcat5.0.28,这是当前稳定版本.Tomcat运行在80端口.访问http://localhost/8080检查Tomcat是否安装成功. 3.下载AXIS: 官方站点:http://xml.apache.org/axis/index.html 下载软件:axis-bin-1_2_1.tar.gz 4.下载相关包: a.mail.jar 下载地址:http://java.sun.com/products/javamail b.activation.jar 下载地址:http://java.sun.com/products/javabeans/glasgow/jaf.html c.xerces.jar 下载地址:http://xml.apache.org/xerces-j/index.html d.xmlsec-1.2.1.jar 下载地址:http://xml.apache.org/security/
  三.安装 1.将jdk1.5.0_04安装在D:\jdk1.5.0_04下(当然安装路径可任意选)好后,环境变量配置如下: JAVA_HOME=D:\jdk1.5.0_04 CLASSPATH=.;D:\jdk1.5.0_04\jre\lib\rt.jar;D:\jdk1.5.0_04\jre\lib\tools.jar Path=D:\jdk1.5.0_04\bin 2.tomcat-5.0.28安装在D:\tomcat-5.0.28下(安装路径可任选)好后,环境变量配置如下: CATALINA_BASE=D:\tomcat-5.0.28 CATALINA_HOME=D:\tomcat-5.0.28 3.axis的安装 a.将下载的Axis软件包解压缩,将其中的“webapps”目录下的“axis”目录整个拷贝到Tomcat安装目录下的“webapps”目录下。 b.将mail.jar、activation.jar、xerces.jar、xmlsec-1.2.1.jar四个包,全部拷到D:\tomcat-5.0.28\webapps\axis\WEB-INF\lib下 c.环境变量配置 AXIS_HOME=D:\tomcat-5.0.28
  AXIS_LIB=%AXIS_HOME%\WEB-INF\lib AXISCLASSPATH=%AXIS_LIB%\activation.jar;%AXIS_LIB%\axis.jar;%AXIS_LIB%\axis-ant.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%\xml-apis.jar;%AXIS_LIB%\xercesImpl.jar;%AXIS_LIB%\mail.jar;AXIS_LIB%\wsdl4j-1.5.1.jar;%AXIS_LIB%\xerces.jar;%AXIS_LIB%\xmlsec-1.2.1.jar
  CLASSPATH=%AXIS_HOME%\WEB-INF\lib AXISCLASSPATH=%AXIS_LIB%\activation.jar;%AXIS_LIB%\axis.jar;%AXIS_LIB%\axis-ant.jar;%AXIS_LIB%\commons-discovery-0.2.jar;%AXIS_LIB%\commons-logging-1.0.4.jar;%AXIS_L
  IB%\jaxrpc.jar;%AXIS_LIB%\saaj.jar;%AXIS_LIB%\log4j-1.2.8.jar;AXIS_LIB%\xml-apis.jar;%AXIS_LIB%\xercesImpl.jar;%AXIS_LIB%\mail.jar;AXIS_LIB%\wsdl4j-1.5.1.jar;%AXIS_LIB%\xerces.jar;%AXIS_LIB%\xmlsec-1.2.1.jar 这里有几点需要注意:中间不要有空格,包的名字可能有不同的版本,这时需要修改一下包名。
  四.测试安装配置完毕后,应测试一下是否tomcat、Axis可以正确运行了。启动Tomcat服务器,在浏览器中访问http://localhost:8080/axis/happyaxis.jsp,如果页面显示有错误,则需要回头检查一下相关配置是否正确,如果浏览页面能正确显示出系统组件、属性等参数配置信息,则表示安装成功。现在可以开始开发你的Web Services应用了。 
  五、服务的发布 Axis提供了两种服务发布方式,一种是即时发布(Instant Deployment),一种是定制发布(Custom Deployment)。
  1. 使用即时发布 Java Web Service(JWS)
  对即时发布的支持是Axis的特色之一,使用即时发布使用户只需有提供服务的Java类的源代码,即可将其迅速发布成Web服务。每当用户调用这类服务的时候,Axis会自动进行编译,即使服务器重启了也不必对其做任何处理,使用非常简单快捷。
  使用即时发布首先需要一个实现服务功能的Java源文件,将其扩展名改为.jws(Java Web Service的缩写),然后将该文件放到“……\webapps\axis”目录下即可。  在此给出一个HelloWorld程序,其源码如下:
  HelloWorld.java
  public class HelloWorld {   public String sayHello()   {     return "HELLO WORLD!";   } }
  将其放到“……\webapps\axis”目录,通过访问http://localhost:8080/axis/HelloWorld.jws?wsdl可以看到这个服务的WSDL描述文件,这说明HelloWorld服务被成功发布了。现在写个客户端程序访问一下:
  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 );   
  }
  }
  下面我们介绍第二种发布方式,这是常用的。
  我们的第二种发布方式: 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>
  在DOS下转换目录到%TOMCAT_HOME%\webapps\axis\WEB-INF,命令: java org.apache.axis.client.AdminClient deploy.wsdd 后会出现
  Processing file deploy.wsdd <Admin>Done processing</Admin>
  这时你会发现目录下多了一个server-config.wsdd文件,这就是AXIS的配置文件,以后所有的服务发布描述都会在里面找到。(当然,你可以直接修改它,不用再写deploy.wsdd)然后打开浏览器http://localhost:8080/axis/services/HelloWorld?wsdl,你就会看到你的服务已发布
  同样用客户端程序访问一下:(注意和上边的差别!!)
  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 );    } }
  五.总结
  Web Services是未来网络应用的发展方向,SOAP和WSDL是Web Services的核心协议,Axis给出了一个很好的SOAP实现,它使得开发Web Services应用变得轻松而有趣。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-334622-1-1.html 上篇帖子: 用 GlassFish v2 替换 Tomcat 5.x 下篇帖子: Tomcat配置和Web应用程序开发
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表