1 package org.jimmy.webservice20171116; 2 3 import javax.jws.WebService; 4 5 @WebService 6 public interface HelloWorld { 7 public String sayHi(String name); 8 }
1 package org.jimmy.webservice20171116; 2 3 import java.util.Date; 4 import javax.jws.WebService; 5 6 @WebService(endpointInterface="org.jimmy.webservice20171116.HelloWorld",serviceName="readerService") 7 public class HelloWorldImpl implements HelloWorld { 8 9 @Override 10 public String sayHi(String name) { 11 return name + ",您好!现在时间是:" + new Date(); 12 } 13 14 }
1 package org.jimmy.webservice20171116; 2 3 import javax.xml.ws.Endpoint; 4 5 public class ServiceMain { 6 7 public static void main(String[] args) { 8 9 HelloWorld hw = new HelloWorldImpl(); 10 // Endpoint.publish("http://localhost:33333/readerService", hw); 11 Endpoint.publish("http://172.31.7.212:33333/readerService", hw); 12 /*IReaderService readerService = new ReaderService(); 13 Endpoint.publish("http://localhost:33333/readerService", readerService);*/ 14 System.out.println("Web Service暴露成功!"); 15 16 } 17 18 }
先运行ServiceMain,如果控制台出现"Web Service暴露成功"就好了.
浏览器输入:
http://172.31.7.212:33333/readerService?wsdl
如果出现下面这张图就是成功了!
注意:ServiceMain的第10行,如果写成localhost,本机可用,同事的机器貌似用ip地址也不能用(结果,你们可以自己测试一下).
注意:如果publish那里的第一个参数就是url,必须要加上http://,端口号也是必须的(貌似有默认端口),要不然可能会报错!
直接用ip地址是自己和内网的都能用的.
远程或本地调用的测试代码(注意,其他项目调用需要用之前项目的Jar包或引用之前的项目,具体怎么引用,百度说的很清楚,不清楚的话只能你们自己想办法了,我只是菜鸟):
1 package org.jimmy.webservice20171116; 2 3 import java.net.URL; 4 5 import javax.xml.namespace.QName; 6 import javax.xml.ws.Service; 7 8 public class Test { 9 10 public static void main(String[] args) { 11 try{ 12 URL wsdlUrl = new URL("http://172.31.7.212:33333/readerService"); 13 Service s = Service.create(wsdlUrl, new QName("http://webservice20171116.jimmy.org/", "readerService")); 14 HelloWorld hs = s.getPort(new QName("http://webservice20171116.jimmy.org/", "HelloWorldImplPort"), HelloWorld.class); 15 String result = hs.sayHi("Dawn"); 16 System.out.println(result); 17 }catch(Exception e){ 18 e.printStackTrace(); 19 } 20 21 } 22 23 }
最后运行Test,如果出现下图就完成了!