欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

在同一个WiFi下的两台电脑,使用webService 和 axis 实现接口调用

程序员文章站 2022-07-08 22:27:06
...

两台不同计算机的Java代码如何相互调用方法?可以使用webService技术。

首先是webService端,是服务发布端,就是服务提供者,被调用的接口。

package com.keerqin;

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

//表明将此类发布
@WebService
public class test {
    //可以被调用的方法
    //@WebParam这个参数一定要写
    @WebMethod(operationName = "print")
    public String print(@WebParam(name="name") String name){
        System.out.println("你好"+name);
        return "你好"+name;
    }

    public static void main(String[] args) {
        //发布的地址
        Endpoint.publish("http://192.168.0.110:8081/Service/hello",new test());
        System.out.println("success");
    }
}

接下来是调用端,就是服务的使用的,接口的调用者

package com.test;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.junit.Test;

import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;
import javax.xml.rpc.encoding.XMLType;

public class client {
    @Test
    public void getService(){
        try {
            String endpoint = "http://192.168.0.110:8081/Service/hello";
            Service service = new Service();
            Call call = (Call) service.createCall();
            call.setTargetEndpointAddress(new java.net.URL(endpoint));
            //第一个参数稍后讲解,第二个参数为调用的方法名
            call.setOperationName(new QName("http://keerqin.com/","print"));
            //第一个参数为调用方法的参数名,对应注解WebParam
            call.addParameter("name", XMLType.XSD_STRING, ParameterMode.IN);
            // 返回值类型:String
            call.setReturnType(XMLType.XSD_STRING);
            //传递的参数的值
            String message = "科尔沁";
            String result = (String) call.invoke(new Object[] { message });// 远程调用
            System.out.println("result is " + result);
        } catch (Exception e) {
            System.err.println(e.toString());
        }
    }
}

关于

http://keerqin.com/

这个参数的获取,在历览器输入

http://192.168.0.110:8081/Service/hello?wsdl

在同一个WiFi下的两台电脑,使用webService 和 axis 实现接口调用取自上图红框中的值即可。

代码已经写完了。先在一台电脑上跑test类(WebSerivce),然后在另一台电脑上跑client类(axis)。就可以模拟实现接口调用了。

相关标签: 杂货铺