使用CXF发布webService

1、下载CXF,并配置环境变量
         将bin目录配置到path中
2、新建java project,导入cxf的jar包,最终项目结构如下:
       
3、建立接口及实现类
         1)接口
                       package  com.tgb.web.webservice;
import javax.jws.WebService;
@WebService
public interface HelloWorld {
    public String sayHi(String str);
}
         2)实现类:
                       package  com.tgb.web.webservice.impl;
import java.util.Date;
import javax.jws.WebService;
import com.tgb.web.webservice.HelloWorld;
@WebService(endpointInterface="com.tgb.web.webservice.HelloWorld",serviceName="HelloWorld")
public class HelloWorldBean implements HelloWorld {
    @Override
    public String sayHi(String str) {
        return "hello,"+str+",现在时间是:"+new Date();
    }
}
4、利用Endpoint发布webService,即客户端如下:
            package  lee;
import javax.xml.ws.Endpoint;
import com.tgb.web.webservice.HelloWorld;
import com.tgb.web.webservice.impl.HelloWorldBean;
public class ServerMain {
    public static void main(String[] args) {
        HelloWorld hw=new HelloWorldBean();
        //调用Endpoint的publish方法发布Web Service
        Endpoint.publish("http://192.168.1.108:8088/HelloWorld", hw);
        
        System.out.println("webService 发布成功!");
    }
}
5、在浏览器中访问地址: http://192.168.1.108:8088/HelloWorld?wsdl ,就可以看到发布的wsdl页面了。

=================================================================
客户端:
1、新建立java项目WS_Client, 运行cmd,将目录定位到 WS_Client项目下的src目录下,然后输入wsdl2java  http://192.168.1.108:8088/HelloWorld?wsdl,就可以在客户端生成调用wsdl的代理对象来,如下图
        
        
2、建立测试类 ClientMain :
package lee;
import com.tgb.web.webservice.impl.HelloWorld;
public class ClientMain {
    public static void main(String[] args) {
        HelloWorld factory=new HelloWorld();
        com.tgb.web.webservice.HelloWorld hWorld= factory.getHelloWorldWsPort();
        
        System.out.println(hWorld.sayHi("张三"));
    }
}
3、运行测试类,就可以成功调用。最后输出结果如下:
     hello,张三,现在时间是:Wed Mar 23 22:25:24 CST 2016  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值