WebService服务端和客户端 (原生jdk调用)

服务端:

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);
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值