在同一个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
取自上图红框中的值即可。
代码已经写完了。先在一台电脑上跑test类(WebSerivce),然后在另一台电脑上跑client类(axis)。就可以模拟实现接口调用了。
上一篇: Mybatis plus中使用in查询出错如何解决
下一篇: obs 属性窗口 及 属性获得