什么都不管,先把HelloWorld搭建起来先再看Web Service是干嘛的
一.新建一个Java工程
二.写服务器端代码
一个server接口,一个实现类,再加一个主函数
package com.aii.ws.server; import javax.jws.WebMethod; import javax.jws.WebService; @WebService public interface HelloWorld { @WebMethod String sayHello(String name); }
package com.aii.ws.server; import javax.jws.WebService; @WebService public class HelloWorldImpl implements HelloWorld { @Override public String sayHello(String name) { System.out.println("server : " + name); return "hello , " + name; } }
package com.aii.ws.main; import javax.xml.ws.Endpoint; import com.aii.ws.server.HelloWorldImpl; public class Runner { public static void main(String[] args) { //这里我新建工程的名字为"WSHelloWorld" String url = "http://localhost:8080/WSHelloWorld/hello"; Endpoint.publish(url, new HelloWorldImpl()); System.out.println("发布成功"); } }
这个时候在浏览器输入
http://localhost:8080/WSHelloWorld/hello
是能看到东西的.进入到 "http://localhost:8080/WSHelloWorld/hello?wsdl"能得到一个xml文件.
其实,WebService就是通过Http以XML的形式来对话,交换信息的.
通过Myeclipse里的工具能够访问webService里的方法:
就是这个图标.点击以后打开一个窗口,按着下图做,1.2.3.4.
3处输入的地址为 uri?wsdl
5处显示的是一些状态信息,现在先不用
点击Go以后进入看到如下的信息:
按着提示继续点
在3处输入的就是 sayHello里的哪个String参数,我们可以随便输入一个字符串,然后点击 Go
效果如下.看2个地方:
1.Status的信息
2.服务器端Console的显示,这个对应的应该是方法调用时打印的信息
四.写客户端代码
WebService是用来调用的.并不是用来浏览器输入着玩的,所以这里先写个客户端代码
不理解WebService是干嘛的也没事,先写了再说.
对了,这个代码好像不是用写的,是用工具生成的..讲下怎么生成
新建一个工程,这个就叫WSHelloWorldClient把
现在这个工程是空的,什么都没有.
用cmd命令,进入到这个工程的src目录下,然后使用 wsimport 命令来做
这个命令哪来的呢,jdk自带的,在JAVA_HOME/bin下有,
刷新一下工程,就会发现多出好多东西
再编写一个客户端的main类
package com.aii.ws.test; import com.aii.ws.server.HelloWorldImpl; import com.aii.ws.server.HelloWorldImplService; public class Client { public static void main(String[] args) { HelloWorldImplService factory = new HelloWorldImplService(); HelloWorldImpl hello = factory.getHelloWorldImplPort(); String result = hello.sayHello("tiger"); System.out.println("client : " + result); } }
查看结果:
客户端
服务器
完成
最好自己研究下生成的java文件是一些什么....