Java使用WebService调用远程服务wsdl的方法,搭建一个demo,简单易用的教程

主要参考博客:https://www.cnblogs.com/fengwenzhee/p/6915606.html

首先,基本属于定义,请参考上述博客。但是上面的老哥没有源码,都是图片,我这里整理一下,便于大家使用,开始搭建:

ps:本文所有引用都是jdk自带jar包,没有第三方引用

1.新建web项目作为服务端:

Java使用WebService调用远程服务wsdl的方法,搭建一个demo,简单易用的教程_第1张图片

页面基本不用,就不展开了,三个类代码如下:

WebService:

import javax.jws.WebMethod;
@javax.jws.WebService
public interface WebService {
	@WebMethod
	String sayHello(String name);
}

WebServiceImpl:

@javax.jws.WebService
public class WebServiceImpl implements WebService {

	@Override
	public String sayHello(String name) {
		System.out.println("成功进入sayHello方法");
		String newName = name + "————带小尾巴的后缀";
		return newName;
	}

}

WebServicePublish:

import javax.xml.ws.Endpoint;

public class WebServicePublish {
	public static void main(String[] args) {
		String address = "http://localhost:8080/WS_Server/WebService";
		Endpoint.publish(address, new WebServiceImpl());
		System.out.println("服务发布成功。。。");
	}
}

好了之后,启动main方法,注意不是启动web项目,是启动main方法,看到控制台有输出,表明发布成功:

Java使用WebService调用远程服务wsdl的方法,搭建一个demo,简单易用的教程_第2张图片

然后打开浏览器,访问网页:http://localhost:8080/WS_Server/WebService?wsdl

地址是WebServicePublish类里面的发布地址 + ?wsdl

Java使用WebService调用远程服务wsdl的方法,搭建一个demo,简单易用的教程_第3张图片

发布成功。

接下来做客户端:

新建web项目:

Java使用WebService调用远程服务wsdl的方法,搭建一个demo,简单易用的教程_第4张图片

一个空的web项目,然后,win+r,打开cmd命令行:

切换到项目所在盘符,然后输入:

wsimport -s E:\MyWorkspace\WebClient\src -keep http://127.0.0.1:8080/WS_Server/WebService?wsdl

前面命令固定的,中间是项目路径\src,后面的刚刚浏览器打开的,服务发布的地址,根据自己的项目更改命令:

Java使用WebService调用远程服务wsdl的方法,搭建一个demo,简单易用的教程_第5张图片

执行完后,回去刷新项目,client项目会自动生成一些文件:

Java使用WebService调用远程服务wsdl的方法,搭建一个demo,简单易用的教程_第6张图片

手动新建WSClient测试类:

public class WSClient {
	public static void main(String[] args) {
		WebServiceImplService factory = new WebServiceImplService();
		WebServiceImpl wsImpl = factory.getWebServiceImplPort();
		String resResult = wsImpl.sayHello("小明同学");
		System.out.println("调用WebService的sayHello方法返回的结果是:" + resResult);
	}
}

执行客户端main方法:

Java使用WebService调用远程服务wsdl的方法,搭建一个demo,简单易用的教程_第7张图片

看到效果,调用成功!

注意: 在命令行执行和客户端启动的时候,服务端一直要启动。

你可能感兴趣的:(教程)