zoukankan      html  css  js  c++  java
  • webservice的使用-axis1-01

    1.搭建axis服务器

      1.1 下载axis-bin-1_4.zip文件并解压

      1.2 拷贝axis-1_4webapps目录下的axis到tomcat目录下的webapps目录下并启动

      1.3 在浏览器中输入http://localhost:8080/axis/ 如果能进入到axis主页就表示是搭建成功

        

    2.发布自己的应用到axis服务器(即时发布和定制发布)

      2.1 即时发布(仅适用于单个java文件,且没有包和jar包,且需要有源码)(jws)

        发布步骤:

          1)编写单个java文件

    public class HelloWS {
        public String hello(String a,String b) {
            return "response by server "+a +","+b
        }
    }
    

           2)将HelloWS.java拷贝到tomcat下的webapps/axis目录下,并改名为HelloWS.jws,重启tomcat

            

          3 )在浏览器中输入http://localhost:8080/axis/HelloWS.jws看到以下界面表示发布成功

            

          4) 点击上图的Click to see the WSDL如果报以下错误,修改jdk的版本为1.6(本人测试,不支持1.8)

            

      2.2 定制发布(WSDD)

        2.2.1 带有包结构的class文件进行发布

          1) 编写java代码并进行编译为为class文件      

    package com.beifeng.hadoop.webservice.server;
    public class HelloWSDD { private int counter=0; public String hello(String name) { counter++; System.out.println("访问次数:"+counter); return "欢迎访问axis服务器:"+name; } public float add(float a,float b) { counter++; System.out.println("访问次数:"+counter); return a+b; } }

           2) 将编译后的class文件及包结构拷贝到tomcatwebappsaxisWEB-INFclasses目录下

            

          3)在axisWEB-INFserver-config.wsdd文件中添加要发布的服务,如果没有该文件在其他地方进行拷贝   

      <!--要发布的服务名称 -->
      <
    service name="HelloWSDD" provider="java:RPC">
         <!--类名-->
    <parameter name="className" value="com.beifeng.hadoop.webservice.server.HelloWSDD" />
         <!--要发布的方法--> <parameter name="allowedMethods" value="hello,add" />
         <parameter name="scope" value="application"/> 
    </service>

          参数scope的值:requet、session或application

          request:Axis为每一个SOAP的请求产生一个服务对象,针对于请求(默认)

           session:Axis为每一个调用webservice的客户端生成一个对象,针对于会话

          application:在服务器内存中直接创建一个对象,每次请求直接返回

        4)重启tomcat,在浏览器中输入http://location:8080,点击list即可看到如下页面

          

    3. 客户端调用

      3.1 调用jws即时发布的HelloWS.jws的hello方法

    //服务地址
    String url="http://localhost:8080/axis/HelloWS.jws";
            
    //构建web service 服务
    Service service=new Service();
            
    //创建一个调用
    Call call=(Call) service.createCall();
            
     //设置调用的地址
    call.setTargetEndpointAddress(url);
            
    //设置要调用的方法
    call.setOperationName(new QName(url, "hello"));
            
    //执行该调用并传递参数
    String result=(String) call.invoke(new Object[]{"teacher","student"});
            
    //返回结果:response by server teacher,student
    System.out.println(result);
    

      

  • 相关阅读:
    Asp.net web Api源码分析HttpServer的创建
    asp.net mvc源码分析DefaultModelBinder 集合绑定
    asp.net mvc RouteCollection的RouteExistingFiles属性理解
    Asp.net web Api源码分析HttpResponseMessage
    asp.net mvc源码分析RenderAction和RenderPartial
    AcWing 1022. 宠物小精灵之收服
    AcWing 423. 采药
    AcWing 272. 最长公共上升子序列
    算法浅谈之迭代加深
    AcWing 1023. 买书
  • 原文地址:https://www.cnblogs.com/lifeone/p/7220623.html
Copyright © 2011-2022 走看看