创建第一个WebService程序并发布

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的符合数据类型

你可能感兴趣的:(java,server,webservice,client)