CXF实现WebService入门示例

CXF实现WebService入门示例

一、环境介绍

cxf:2.6.2
jdk:1.7
ide:IDEA14
(-)服务端借助jetty发布服务
(-)客户端使用wsdl2java工具生成(需将cxf配置环境变量)

二、服务端

1.jar包(CXF的lib目录下都有)

asm-3.3.1.jar
commons-logging-1.1.1.jar
cxf-2.6.2.jar
geronimo-servlet_2.5_spec-1.1.2.jar
neethi-3.0.2.jar
wsdl4j-1.6.2.jar
xmlschema-core-2.0.3.jar

jetty-continuation-7.5.4.v20111024.jar
jetty-http-7.5.4.v20111024.jar
jetty-io-7.5.4.v20111024.jar
jetty-security-7.5.4.v20111024.jar
jetty-server-7.5.4.v20111024.jar
jetty-util-7.5.4.v20111024.jar

2.接口

package com.yale.service;

import javax.jws.WebService;

@WebService
public interface HelloWorld {
    String sayHello(String name);
}

3.接口实现

package com.yale.service;

import javax.jws.WebService;

@WebService(endpointInterface = "com.yale.service.HelloWorld")
public class HelloWorldImpl implements HelloWorld {

    @Override
    public String sayHello(String name){
        System.out.println("sayHello方法被调用");
        return ("Hello "+name);
    }

}

4.发布

package com.yale.server;

import com.yale.service.HelloWorld;
import com.yale.service.HelloWorldImpl;
import org.apache.cxf.jaxws.JaxWsServerFactoryBean;

public class MainServer {
    public static void main(String[] args) {
        JaxWsServerFactoryBean factoryBean = new JaxWsServerFactoryBean();
        factoryBean.setAddress("http://localhost:8989/crazyit");
        factoryBean.setServiceClass(HelloWorld.class);
        factoryBean.setServiceBean(new HelloWorldImpl());
        factoryBean.create();
        System.out.println("发布成功!");
    }
}

5.测试

浏览器打开:http://localhost:8989/crazyit?wsdl

三、客户端

1.jar包

asm-3.3.1.jar
commons-logging-1.1.1.jar
cxf-2.6.2.jar
geronimo-servlet_2.5_spec-1.1.2.jar
neethi-3.0.2.jar
wsdl4j-1.6.2.jar
xmlschema-core-2.0.3.jar

2.wsdl2java生成客户端

- 新建一个Java项目
- 在src目录下进入cmd窗口
- 输入命令:wsdl2java -d . -p com.yale.service http://localhost:8989/crazyit?wsdl

3.精简客户端(可选)

- 只保留HelloWorld接口java文件,其他都删了
- HelloWorld接口报错的那一行删掉(含有ObjectFactory的那一行)

4.生成代理调用

package com.yale.client;

import com.yale.service.HelloWorld;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;

public class ClientMain {
    public static void main(String[] args) {
        JaxWsProxyFactoryBean bean = new JaxWsProxyFactoryBean();
        bean.setAddress("http://localhost:8989/crazyit");
        bean.setServiceClass(HelloWorld.class);
        HelloWorld proxy = (HelloWorld)bean.create();
        System.out.println(proxy.sayHello("tom"));
    }
}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值