环境工具:
Eclipse 4.7.3a
jdk1.7
一:创建服务端,发布接口
创建java Project 即可
点击finish
新建包 com.webservice.server,
包里面新建类WebServiceTest.java
package com.webservice.server;
import javax.jws.WebService;
import javax.xml.ws.Endpoint;
//给用于发布的类添加注解
@WebService
public class WebServiceTest {
/**
* 该方法就是服务端 可供发布的方法 供其他程序调用
* @param words
* @return
*/
public String showAll(String words) {
String sl ="";
//String.toCharArray() 该方法的作用是返回一个字符数组,该字符数组中存放了当前字符串中的所有字符
for(char ch : words.toCharArray()) {
sl+="\t"+ch+"\t";
}
return sl;
}
/**
* 可以写多个方法
* @param name
* @return
*/
public String say(String name) {
return "你好"+name;
}
//在此处通过main方法 直接发布该服务。 在工作应用中,可以将发布的代码 写在一些初始化的方法当中
public static void main(String[] args) {
//该语句用来发布服务端的方法,localhost指向本地,9093为端口可任意,但必须未被占用
//第二个参数为new+用于发布的服务端类
Endpoint.publish("http://localhost:9093/Service/wst", new WebServiceTest());
System.out.println("发布成功");
}
}
运行代码,发布成功
此时 我们可以在浏览器上访问:http://localhost:9093/Service/wst
弹出如下界面,即为正常:
二:生成客户端
创建一个新的java project
点击finish
新建包com.webservice.client
然后 cmd 打开命令提示窗口 执行生成命令
格式:wsimport -s "src目录" -p “生成类所在包名” -keep “wsdl发布地址”
注意:
1)"src目录"地址不可含空格
2)“wsdl发布地址”不要漏了“?wsdl”
http://localhost:9093/Service/wst?wsdl 是这种格式的
示例:
wsimport -s E:\develop\workspace\eclispe\webservice-client\src -p com.webservice.client -keep http://localhost:9093/Service/wst?wsdl
命令执行成功,生成代码
刷新webservice-client项目,检查生成类
目录如下
然后编写测试类 测试发布的接口
结构:
测试类WsTest.java 代码:
package com.webservice.test;
import com.webservice.client.WebServiceTest;
import com.webservice.client.WebServiceTestService;
public class WsTest {
public static void main(String[] args) {
WebServiceTest ws = new WebServiceTestService().getWebServiceTestPort();
//验证showAll()方法
String w = ws.showAll("nihaoma");
System.out.println(w);
//验证say()方法
System.out.println(ws.say("WebService"));
}
}
执行结果 如图:
ok,demo到此结束。
如有不正,欢迎各位大佬批评指正。
最后 附上 常见错误问题汇总:
1、JDK版本过低问题
报类似如下的异常:runtime modeler error: Wrapper class com.hyan.service.jaxws.GetValue is not found. Have you run APT to generate them?
原因:JDK版本低于1.6.0_17
解决方法:调整该服务端项目所引用的JDK版本为安装的高版本JDK
2、生成命令路径含空格问题
报类似如下的异常:directory not found: G:\SVN_FILE\GB\05
原因:客户端src路径不可含有空格
解决方法:在不含空格路径的文件夹下重新创建客户端即可。
3、生成命令不完整问题
报类似如下的异常:[ERROR] failed.noservice=Could not find wsdl:service in the provided WSDL(s):
原因:生成命令末尾缺少“?wsdl”
解决方法:补上即可。
错误不完整的命令示例:
wsimport -s G:\\workspace\\webService\\TheClient\\src -p com.hyan.client -keep http://localhost:9001/Service/ServiceHello
正确完整的命令示例:
wsimport -s G:\\workspace\\webService\\TheClient\\src -p com.hyan.client -keep http://localhost:9001/Service/ServiceHello?wsdl
最后这些常见的错误 我就没有去单独截图,引用自该博客:https://blog.csdn.net/yipanbo/article/details/46516755。
在此表示感谢。
如果我们的博客对你有所帮助,请记得给点个赞哦~~~ 嘿嘿