webservice简单应用

  1. 搭建目录结构
    在这里插入图片描述
  2. 编写创建服务接口
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;

/**
 *
 * 基于soap协议(http+xml)的服务
 */
@WebService(name = "Login",// 定义Port名称
        serviceName = "MyService", // 修改WebService服务名称
        targetNamespace = "http://com.jhb.webService" // 定义命名空间,默认为倒置的包名
)
public interface MyService {
    // 提供一个对外公开的服务
    @WebMethod(operationName = "authorization")
    // 修改方法名
    String authorization(@WebParam(name = "userId") String userId,
                         @WebParam(name = "password") String password);

    // 提供一个对外公开的服务
    @WebMethod(operationName = "authorization1")
    // 修改方法名
    String authorization1(@WebParam(name = "userId") String userId);
}

  1. 实现服务接口
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;

/**
 * 服务实现类
 */
@WebService(endpointInterface = "com.jhb.webService.MyService",
        name = "Login",// 定义Port名称
        serviceName = "MyService", // 修改WebService服务名称
        targetNamespace = "http://com.jhb.webService" // 定义命名空间,默认为倒置的包名
//服务实现类和接口的注解要一样全
)
public class MyServiceImpl implements MyService {

    @WebMethod(operationName = "authorization" // 修改方法名
    )
    @Override
    public String authorization(@WebParam(name = "userId") String userId,
                                @WebParam(name = "password") String password) {
        if ("admin".equals(userId) && "123456".equals(password)) {
            return "success";
        }
        return "error";
    }

    @Override
    public String authorization1(@WebParam(name = "userId") String userId) {
        return null;
    }
}

  1. 运行main方法发布服务,看到控制台打印出 :发布服务成功
    在这里插入图片描述
  2. 在浏览器上输入地址查看服务接口
    在这里插入图片描述
  3. 编写原生客户端
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import java.net.URL;

/**
 * 原生客户端调用
 */
public class WsClient {

    public static void main(String[] args) throws Exception {
        URL url = new URL("http://localhost:8089/myservice?wsdl");
        // 指定命名空间和服务名称
        QName qName = new QName("http://com.jhb.webService", "MyService");
        Service service = Service.create(url, qName);

        // 通过getPort方法返回指定接口
        MyService myServer = service.getPort(new QName("http://com.jhb.webService",
                "LoginPort"), MyService.class);

        // 调用方法 获取返回值
        String result = myServer.authorization("admin", "123456");

        System.out.println(result);
    }
}
  1. 运行客户端main方法 返回 success 表示调用成功
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值