Creating a Simple Web Service and Client with JAX-WS

Creating a Simple Web Service and Client with JAX-WS

 发布服务

package cn.zno.service.impl;

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

@WebService
public class HelloServiceImpl {

    public String say(String name) {
        System.out.println(name);
        return "invoked";
    }

    public static void main(String[] args) {
        Endpoint.publish("http://localhost:8080/HelloServic",new HelloServiceImpl());
    }

}

查看wsdl

http://localhost:8080/HelloServic?wsdl

生成客户端代码

cmd 运行 %JAVA_HOME%/bin/wsimport.exe 脚本

E:>wsimport -keep http://localhost:8080/HelloServic?wsdl
parsing WSDL...



Generating code...


Compiling code...


E:>

目录

E:.
└─cn
    └─zno
        └─service
            └─impl
                    HelloServiceImpl.class
                    HelloServiceImpl.java
                    HelloServiceImplService.class
                    HelloServiceImplService.java
                    ObjectFactory.class
                    ObjectFactory.java
                    package-info.class
                    package-info.java
                    Say.class
                    Say.java
                    SayResponse.class
                    SayResponse.java

创建客户端

import java.net.MalformedURLException;
import java.net.URL;

import javax.xml.namespace.QName;
import javax.xml.ws.Service;

import cn.zno.service.impl.HelloServiceImpl;

public class Test {
    public static void main(String[] args) throws MalformedURLException {
        // String namespaceURI, String localPart
        QName qname = new QName("http://impl.service.zno.cn/","HelloServiceImplService");
        
        Service service = Service.create(new URL("http://localhost:8080/HelloServic?wsdl"),qname);
        HelloServiceImpl serv = service.getPort(HelloServiceImpl.class);
        String response = serv.say("hi");
        System.out.println(response);
        
    }

}

测试

启动服务器

运行客户端

1.服务器Console 打印:hi

2.客户端Console 打印:invoked

原文地址:https://www.cnblogs.com/zno2/p/4651218.html