JAX-WS示例(RPC样式)
精华
小牛编辑
135浏览
2023-03-14
创建JAX-WS示例是一项简单的任务,因为它不需要额外的配置设置。
JAX-WS API内置于JDK中,因此无需为其加载任何额外的jar文件。 让我们看一下RPC样式的JAX-WS简单示例。
创建一个Java项目:JAXWSHelloworld,在这个项目中创建了4个文件:
- HelloWorld.java
- HelloWorldImpl.java
- Publisher.java
- HelloWorldClient.java
前3
个文件是为服务器端应用程序创建的,最后1
个是为客户端应用程序创建的。
1. JAX-WS服务端代码
文件: HelloWorld.java 的内容如下 -
package com.yiibai;
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;
//Service Endpoint Interface
@WebService
@SOAPBinding(style = Style.RPC)
public interface HelloWorld{
@WebMethod String getHelloWorldAsString(String name);
}
文件: HelloWorldImpl.java 的内容如下 -
package com.yiibai;
import javax.jws.WebService;
//Service Implementation
@WebService(endpointInterface = "com.yiibai.HelloWorld")
public class HelloWorldImpl implements HelloWorld{
@Override
public String getHelloWorldAsString(String name) {
return "Hello World JAX-WS " + name;
}
}
文件: Publisher.java 的内容如下 -
package com.yiibai;
import javax.xml.ws.Endpoint;
//Endpoint publisher
public class Publisher {
public static void main(String[] args) {
Endpoint.publish("http://localhost:7788/ws/hello", new HelloWorldImpl());
}
}
如何查看生成的WSDL?
运行发布者(Publisher.java)代码后,可以通过访问URL来查看生成的WSDL文件:
- http://localhost:7788/ws/hello?wsdl
2. JAX-WS客户端代码
文件:HelloWorldClient.java -
package com.yiibai;
import java.net.URL;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
public class HelloWorldClient {
public static void main(String[] args) throws Exception {
URL url = new URL("http://localhost:7788/ws/hello?wsdl");
// 1st argument service URI, refer to wsdl document above
// 2nd argument is service name, refer to wsdl document above
QName qname = new QName("https://www.xnip.cn/", "HelloWorldImplService");
Service service = Service.create(url, qname);
HelloWorld hello = service.getPort(HelloWorld.class);
System.out.println(hello.getHelloWorldAsString("yiibai rpc"));
}
}
执行上面的客户端代码,得到以下结果 -
Hello World JAX-WS yiibai rpc