本篇文章主要是在本地通过普通类编写并发布WebService,通过Web项目来编写WebService在我的下一篇文章中会讲到
接下来回归正题,首先创建一个简单的java项目
然后创建三个文件如上图所示(个人习惯把各个方法写在对应的类中,如果你习惯都写在同一个类中,那么也是可以的)
这三个文件分别是
IWebService.java
注意:一定要写 @WebService 注解
package cn.xuzihui.itf;
import javax.jws.WebService;
@WebService
public interface IWebService {
String sayHello(String name);
}
WebServiceImpl.java
注意:一定要写 @WebService 注解
package cn.xuzihui.impl;
import javax.jws.WebService;
import cn.xuzihui.itf.IWebService;
@WebService
public class WebServiceImpl implements IWebService {
@Override
public String sayHello(String name) {
String hello = name + "Hello World!";
return hello;
}
}
WebService.java
package cn.xuzihui.main;
import javax.xml.ws.Endpoint;
import cn.xuzihui.impl.WebServiceImpl;
public class WebService {
public static void main(String[] args) {
String address = "http://127.0.0.1:9001/Service/ServiceTest";
Endpoint.publish(address, new WebServiceImpl());
System.out.println("service success");
}
}
Endpoint.publish()方法有两个参数:
第一个参数是测试的 ip+端口号
第二个是实现类(或者说是本类)
然后启动服务: Java Application
在控制台会输出成功的信息
我们在浏览器中访问上面定义的测试 ip 地址后面加 ?wsdl
http://127.0.0.1:9001/Service/ServiceTest?wsdl
说明发布成功
接下来我们写个 Web Service Client 来调用我们写的WebService
我们在建一个java 项目,命名为 WebServiceTestClient
创建 Web Service Client 有不同的方法,我们现在用 eclipse 自带的 Web Service Client 来创建
在新建的java 项目 WebServiceTestClient 上鼠标单击右键->新建->其他->Web Service Client
service definition 是我们上面的定义的测试地址 ip + ?wsdl
http://127.0.0.1:9001/Service/ServiceTest?wsdl
点击完成,会在我们新建的client项目下自动生成一些类
注意:下面的 WebServiceClientTest.java是我下一步要创建的测试类
WebServiceClientTest.java
package cn.xuzihui.test;
import cn.xuzihui.impl.WebServiceImpl;
import cn.xuzihui.impl.WebServiceImplServiceLocator;
public class WebServiceClientTest {
public static void main(String[] args) throws Exception {
WebServiceImpl test = new WebServiceImplServiceLocator().getWebServiceImplPort();
String message = test.sayHello("赛罗");
System.out.println(message);
}
}
运行这个类(WebService的发布类 WebService.java 不要停止)
在下面的控制台会输出调用 webservice 后的结果
如果出现下面的警告
可能是缺少两个jar包
需要下载这两个jar包导入到 Client 项目下
下载地址
https://download.csdn.net/download/bronzehammer/10608421
在项目中新建一个 lib文件夹,把这两个jar包放在lib中,并在项目中添加外部jar
之后我们重新启动服务,在控制台会输出如下所示