http://blog.csdn.net/hanxuemin12345/article/details/40163757
注:
问题1:当服务发布成功之后,在测试地址:http://localhost:8080/Hello?wsdl 有时候会出现 404
1、是因为jdk版本原因:解决办法:window->preferences------->java----->附件图片中详细步骤
2、服务端发布的方法不能是静态并且是非final的
3、是因为有两个javaw进程。
解决办法:在命令窗口用netstat /a /b查看进程-----》启动任务管理器kill javaw进程-----》在myeclipse中重新部署,启动tomcat----》IE上用测试地址测试wsdl:localhost:8080/HelloWebService?wsdl------》终于成功了!!!
tomcat启动之后控制台必须要看到最后一个打印成功的代码才表示准备工作完成,才能到IE去测试。
IE:测试地址必要打开一个新的标签页
问题2:tomcat启动不了,控制台报端口被占用错误
解决办法:将tomcat重启,项目clean
问题3:当在命令窗口进行client代码自动实现的时候会报错:是因为tomcat没启动,连接不上命令最后的地址及wsdl文件;
命令格式:wsimport -s D:\\Workspaces\\MyEclipse\\TheClient\\src -p com.hyan.client -keep http://localhost:8080/service/Hello?wsdl
wsimport -s 工作地址 -p 自动实现的代码地址 -keep wsdl文件地址。
问题4:利用命令代码自实现过程中报错:报错service不包含service端口,
解决办法需要先读懂wsdl文件,
wsdl文件包括
message:<!-- name="service服务端写的方法名 "-->
binding:<!-- name="服务端的类名" servlet_class-->
binding:<!-- 给服务端方法传输的数据绑定SOAP协议 servlet_name-->
service:<!-- 地址映射 name=服务端类名+service binding=binging的名字 -->
我的解决办法:利用命令窗口生成不了就用myeclipse自带的生成功能。
new webService Client---->next----->WSDL URl:填写服务端发布服务的地址---》next------>finish------>自动生成-----》在client里面新建class命名为myCilent-----------》
在myclient中,【wsdl中的service】 HelloService hs = new HelloService();
【接口接收端口】 Hello h = (Hello) hs.getHelloPort();
【端口中的方法】 String result=h.getValue("曦曦");