服务端:
WebServiceInter
package com.v.vertx.vertx.service;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
/**
* @ClassName: webservice
* @Description:
* @Author V
* @Date 1/2/2021
* @Version 1.0
*/
@javax.jws.WebService(name = "login",// 定义Port名称
targetNamespace = "http://haha/love"// 定义命名空间,默认为倒置的包名
,serviceName ="myService"//修改WebService服务名称
)
public interface WebServiceInter {
// 提供一个对外公开的服务
@WebMethod(operationName ="authorization")
// 修改方法名
String getName(@WebParam(name="userId")String userId);
}
WebServiceImpl:
package com.v.vertx.vertx.service;
import javax.jws.WebMethod;
import javax.jws.WebParam;
/**
* @ClassName: webserviceImpl
* @Description:
* @Author V
* @Date 1/2/2021
* @Version 1.0
*/
@javax.jws.WebService(endpointInterface = "com.v.vertx.vertx.service.WebServiceInter"
,name = "login"// 定义Port名称
,targetNamespace = "http://haha/love" // 定义命名空间,默认为倒置的包名
,serviceName ="myService"// 修改WebService服务名称
//服务实现类和接口的注解要一样全
)
public class WebServiceImpl implements WebServiceInter {
@WebMethod(operationName = "authorization")// 修改方法名
@Override
public String getName(@WebParam(name = "userId") String userId) {
if ("admin".equals(userId)) {
return "success";
}
return "error";
}
}
发布:
package com.v.vertx.vertx.controller;
import com.v.vertx.vertx.service.WebServiceInter;
import com.v.vertx.vertx.service.WebServiceImpl;
import javax.xml.ws.Endpoint;
/**
* @ClassName: Test
* @Description:
* @Author V
* @Date 1/2/2021
* @Version 1.0
*/
public class Test {
public static void main(String[] args) {
//指定服务url
String url = "http://localhost:8889/web?wsdl";
//指定服务实现类
WebServiceInter server = new WebServiceImpl();
//采用命令行发布者Endpoint发布服务
Endpoint.publish(url, server);
}
}
打开这个页面算成功:
客户端:
package com.v.vertx.vertx.controller;
import com.v.vertx.vertx.service.WebServiceInter;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import java.net.URL;
/**
* @ClassName: Dtest
* @Description:
* @Author V
* @Date 1/2/2021
* @Version 1.0
*/
public class DTest {
public static void main(String[] args) throws Exception {
URL url = new URL("http://localhost:8889/web?wsdl");
// 指定命名空间和服务名称
QName qName = new QName("http://haha/love", "myService");
Service service = Service.create(url, qName);
// 通过getPort方法返回指定接口
WebServiceInter myServer = service.getPort(new QName("http://haha/love",
"loginPort"), WebServiceInter.class);
// 调用方法 获取返回值
String result = myServer.getName("admin");
System.out.println(result);
}
}