通过客户端编程的方式调用Webservice服务
新建Java项目
(1)新建包com.lvshitech.myServer,包下编写服务器端代码,WebServer.java
package com.lvshitech.myServer;
import javax.jws.WebService;
import javax.xml.ws.Endpoint;
/* WebService服务端:发布一个WebService服务,并调用 */
@WebService // 标记类或接口,表示此类或接口可以实现(发布)WebService服务
public class WebServer {
// 服务方法
public String sayHello(String name) {
return "Hello " + name;
}
public static void main(String[] args) {
/*
* Endpoint:终端
* publish:创建一个终端
* 第一个参数:服务地址
* 第二个参数:终端的实现者,即当前类对象
*/
Endpoint.publish("http://127.0.0.1:6789/hello", new WebServer());
System.out.println("WebServer is ready...");
}
}
随便在一个目录下打开dos,输入:wsimport -p com.lvshitech.ws.server -s . http://127.0.0.1:6789/hello?wsdl,回车,生成java接口文件
新建包:com.lvshitech.ws.server,并将所有的 .java文件拷贝到该包下,
编写客户端代码,创建包:com.lvshitech.client,包下创建类:ClientDemo01.java,需要在浏览器中输入http://127.0.0.1:6789/hello?wsdl,查看wsdl文件的信息:
package com.lvshitech.client;
import java.net.URL;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import com.lvshitech.ws.server.WebServer;
public class ClientDemo01 {
public static void main(String[] args) throws Exception {
// 获取服务端实例
URL wsUrl = new URL("http://127.0.0.1:6789/hello?wsdl");
Service service = Service.create(wsUrl, new QName("http://myServer.lvshitech.com/", "WebServerService"));
// 获取服务器端代理
WebServer webServer = service.getPort(new QName("http://myServer.lvshitech.com/", "WebServerPort"), WebServer.class);
String responseMsg = webServer.sayHello("Peter");
// 输出
System.out.println(responseMsg);
}
}
运行:


浙公网安备 33010602011771号