什么都不管,先把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文件是一些什么....