首页 > 代码库 > java中使用axis发布和调用webService

java中使用axis发布和调用webService

工作中需要调用webService服务,这里记录一下如何在java中发布和调用webService。

 

需要的jar包:

技术分享

 

 

 

发布webService:

package com.xzh.webservice;

import javax.jws.WebMethod;  
import javax.jws.WebService;
import javax.xml.ws.Endpoint;

@WebService
public class MyWebService {

    public String hello(String name) {
        System.out.println("hello:" + name);
        return "hello:" + name;
    }
    
    @WebMethod(exclude=true)  
    public String hello2(String name){ 
        System.out.println("hello2:" + name);
        return "hello2: "+name;  
    }  

    public static void main(String[] args) {
        /**
         * 参数1:服务的发布地址 参数2:服务的实现者
         */
        Endpoint.publish("http://localhost:8080/transcode", new MyWebService());
        System.out.println("webservice start success");
    }

}

 

访问webService:

package com.xzh.webservice;

import java.rmi.RemoteException;

import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;
import javax.xml.rpc.ServiceException;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;

public class MyWebClient {
    public static void main(String[] args) {
        try {
            // new 一个服务
            Service sv = new Service(); 
            // 创建一个call对象
            Call call = (Call) sv.createCall();
            // 设置要调用的接口地址
            call.setTargetEndpointAddress("http://localhost:8080/transcode"); 
            // 设置要调用的接口方法
            call.setOperationName(new QName("http://webservice.xzh.com/", "hello")); 
            // 设置参数,在设定参数时,不使用服务端定义的参数名,而是arg0~argN来定义
            call.addParameter("arg0", XMLType.XSD_STRING, ParameterMode.IN);
            // 返回参数类型
            call.setReturnType(XMLType.XSD_STRING);

            Object result = call.invoke(new Object[]{"jason"});
            System.out.println(result);
        } catch (ServiceException e) {
            e.printStackTrace();
        } catch (RemoteException e) {
            e.printStackTrace();
        }
    }
}

 

日志截图:

技术分享

技术分享

 

java中使用axis发布和调用webService