关闭

cxf 入门(hello world)

282人阅读 评论(0) 收藏 举报
分类:

我这里使用的是apache-cxf-2.6.10,下面就以这个版本为介绍

 

1、从官网上面下载apache-cxf-2.6.10.zip包,然后解压,将下面这些包导入到所建的web工程中。

 

servlet-api.jar
asm-3.3.1.jar
cxf-2.6.10.jar
//jetty的全部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
neethi-3.0.2.jar
wsdl4j-1.6.3.jar
xmlschema-core-2.0.3.jar
geronimo-servlet_2.5_spec-1.1.2.jar
commons-logging-1.1.1.jar

//客户端调用需要下面这个两个jar
woodstox-core-asl-4.2.0.jar
stax2-api-3.1.1.jar

 

 

2、创建一个对外的接口

package com.cxf.service;

import javax.jws.WebService;

@WebService 
public interface HelloWorldCxfService {

	String sayHello(String username);
}

 

3、实现对外接口的实现类

package com.cxf.service.imp;

import javax.jws.WebService;
import com.cxf.service.HelloWorldCxfService;

@WebService(endpointInterface="com.cxf.service.HelloWorldCxfService")
public class HelloWorldCxfServiceImpl implements HelloWorldCxfService {

    public String sayHello(String username) {
    	System.out.println("Hello,"+username);
        return "Hello,"+username;
    }
}

 

4、发布对外接口

package com.cxf.service;

import javax.xml.ws.Endpoint;
import org.apache.cxf.interceptor.LoggingInInterceptor;
import org.apache.cxf.jaxws.EndpointImpl;
import com.cxf.service.imp.HelloWorldCxfServiceImpl;

public class MyServerInteceptor {
	
	public static void main(String[] args) {
		
		String address = "http://localhost:7777/hb";
		EndpointImpl ep = (EndpointImpl)Endpoint.publish(address, new HelloWorldCxfServiceImpl());
		
		//添加in拦截器
		ep.getInInterceptors().add(new LoggingInInterceptor());
		//添加out拦截器
		ep.getOutInterceptors().add(new LoggingInInterceptor());;
		
		System.out.println("发布消息成功");
	}
	
}

 

在浏览器地址栏中输入 http://localhost:7777/hb?wsdl ,如果页面出现一些列的XML格式的字符串,则表示发布成功


5、测试客户端调用代码

5.1 直接在发布server端测试

package com.cxf.client;

import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;

import com.cxf.service.HelloWorldCxfService;

public class MyClient {

	public static void main(String[] args) {
		JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
		String address = "http://localhost:7777/hb";
		
		factory.setServiceClass(HelloWorldCxfService.class);
		factory.setAddress(address);
		HelloWorldCxfService service = (HelloWorldCxfService)factory.create();
		String result = service.sayHello("huangbiao");
		System.out.println("client : " + result);
	}

}

5.2根据CXF的wsdl2java方式在本地生成代码,在另一个工程中测试

package com.cxf.service;

import java.net.MalformedURLException;
import com.cxf.service.HelloWorldCxfService;
import com.cxf.service.imp.HelloWorldCxfServiceImplService;

public class Client1 {
	public static void main(String[] args) throws MalformedURLException {
		HelloWorldCxfServiceImplService factory  = new HelloWorldCxfServiceImplService();
		HelloWorldCxfService iservice = factory.getHelloWorldCxfServiceImplPort();
		String result = service.sayHello("huangbiao");
		System.out.println("client : " + result);
	}
}

 

 备注:在测试客户端的时候需要将上面引入的jar全部引入进工程。 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:325544次
    • 积分:8908
    • 等级:
    • 排名:第2229名
    • 原创:1096篇
    • 转载:14篇
    • 译文:0篇
    • 评论:5条
    最新评论