Java中使用JAX-WS编写Web Service接口的步骤如下:
- 创建Web Service接口类,使用@WebService注解标注接口类
- 创建Web Service接口实现类,实现接口类中的方法
- 创建Endpoint类,使用Endpoint.publish()方法发布Web Service
在这个例子中我们定义了一个简单的webservice接口叫做HelloWorldService,它有一个方法叫做sayHello,返回一个字符串。
import javax.jws.WebMethod;
import javax.jws.WebService;
@WebService
public interface HelloWorldService {
@WebMethod
String sayHello(String name);
}
实现类
import javax.jws.WebService;
@WebService(endpointInterface = "com.example.helloworld.HelloWorldService")
public class HelloWorldServiceImpl implements HelloWorldService {
@Override
public String sayHello(String name) {
return "Hello, " + name + "!";
}
}
发布webservice
import javax.xml.ws.Endpoint;
public class HelloWorldPublisher {
public static void main(String[] args) {
Endpoint.publish("http://localhost:8080/ws/hello", new HelloWorldServiceImpl());
}
}
调用webservice:
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import java.net.URL;
public class HelloWorldClient {
public static void main(String[] args) throws Exception {
URL url = new URL("http://localhost:8080/ws/hello?wsdl");
QName qname = new QName("http://helloworld.example.com/", "HelloWorldServiceImplService");
Service service = Service.create(url, qname);
HelloWorldService hello = service.getPort(HelloWorldService.class);
System.out.println(hello.sayHello("John"));
}
}
上面的示例发布了一个webservice接口到本地的8080端口。然后客户端通过调用这个接口的sayHello方法返回 "Hello, John!"