1、下载的是Apache-cxfire-2.7.18 与jdk1.6结合,下载的Apache-cxfire-3.1.4 需要与JDK1.7结合
使用CXFire开发WebService的服务端(一共分三个步骤)
(1)创建一个java的接口
(2)用一个具体的类将接口实现
(3)将WebService服务进行发布
具体的例子如下:
自定义一个接口
package yy;
import javax.jws.WebService;
@WebService
public interface HelloWorld {
public String sayHi(String name);
}
一个具体的实现类
package yy.impl;
import java.util.Date;
import javax.jws.WebService;
import yy.HelloWorld;
@WebService(endpointInterface="yy.HelloWorld",serviceName="HelloWorldWS")
public class HelloWorldWS implements HelloWorld{
@Override
public String sayHi(String name) {
return name +" 你好"+"现在的时间是"+new Date();
}
}
将WebService进行发布
package lee;
import javax.xml.ws.Endpoint;
import yy.HelloWorld;
import yy.impl.HelloWorldWS;
public class ServerMain {
public static void main(String[] args){
HelloWorld hello=new HelloWorldWS();
//发布WebService
Endpoint.publish("http://你自己电脑的IP/webservie" ,hello);
}
}
该java项目需要将CXF的lib下的jar全部加载到你的项目中。
最后通过浏览器访问http://你自己电脑的IP/webservie?wsdl 是否能够看到一些发布的东西。
使用CXF编写webService的客户端去调用wsdl文档。分以下几个步骤:
(1)使用CXF自带的wsdl2java工具,讲我们在浏览器中的wsdl文档变成java类,首先创建一个客户端的项目,使用dos命令进入到该目录,然后使用命令
wsdl2java http://你自己电脑的IP/webservie?wsdl
然后就会在该文件夹下生成一些类。
(2)找到生成类中extends Service的子类。
(3)创建一个ClientMain类,去调用(2)中的这个子类,返回服务器端的对应的代理类。
例子如下:
package lee;
import yy.HelloWorld;
import yy.impl.HelloWorldWS;
public class ClientMain {
/**
* @param args
*/
public static void main(String[] args) {
该类就是extends Service的类
HelloWorldWS factory =new HelloWorldWS();
//返回的是客户端的代理
HelloWorld hw=factory.getHelloWorldWSPort();
System.out.println(hw.sayHi("孙悟空"));
}
}
web Service接口中的函数的返回值与参数的类型的介绍:
(1)Web Service可以处理String 以及基本的数据类型
(2)Web Service 可以处理 对象,List集合,数组复杂的数据类型
(3)Web Service不能处理Map,非javaBean的符合数据类型