webservice的使用-axis1

Posted YL10000

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了webservice的使用-axis1相关的知识,希望对你有一定的参考价值。

1.搭建axis服务器

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

  1.2 拷贝\\axis-1_4\\webapps目录下的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文件及包结构拷贝到tomcat\\webapps\\axis\\WEB-INF\\classes目录下

        

      3)在axis\\WEB-INF\\server-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);

 

 

 

 

 

 

  

 

以上是关于webservice的使用-axis1的主要内容,如果未能解决你的问题,请参考以下文章

使用URLConnection调用axis1.4开发的webservice

webservice的使用-axis1

CXF Webservice 服务器调用 Axis1 Webservice 作为客户端问题(无法找到有效的 EngineConfigurationFactory)

java webservices 以Axis1.4方式 调用sap webservice接口.

Axis1.4底层加载server-config.wsdd文件的过程

axis2 发布webservice