本篇文章帮大家学习JAX-WS示例(RPC样式),包含了JAX-WS示例(RPC样式)使用方法、操作技巧、实例演示和注意事项,有一定的学习价值,大家可以用来参考。
创建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文件:
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("http://www.jikedaquan.com/", "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