http://blog.csdn.net/bj_xiufeng/article/details/6825234
理论联系实际,单单只讲理论那就成了纸上谈兵,用一个HelloWorld Demo可来说明事更加直观。那下面咱们就开始进行讲解:
首先到apache官方网下载apache-cxf-2.2.2,地址:http://cxf.apache.org/
新建一个Java Project,导入cxf常用.jar包
- commons-logging-1.1.1.jar
- geronimo-activation_1.1_spec-1.0.2.jar (or Sun's Activation jar)
- geronimo-annotation_1.0_spec-1.1.1.jar (JSR 250)
- geronimo-javamail_1.4_spec-1.6.jar (or Sun's JavaMail jar)
- geronimo-servlet_2.5_spec-1.2.jar (or Sun's Servlet jar)
- geronimo-ws-Metadata_2.0_spec-2.jar (JSR 181)
- geronimo-jaxws_2.1_spec-1.0.jar (or Sun's jaxws-api-2.1.jar)
- geronimo-stax-api_1.0_spec-1.jar (or other stax-api jar)
- jaxb-api-2.1.jar
- jaxb-impl-2.1.12.jar
- jetty-6.1.21.jar
- jetty-util- neethi-2.0.4.jar
- saaj-api-1.3.jar
- saaj-impl-1.3.2.jar
- wsdl4j-1.6. wstx-asl-3.2.8.jar
- XmlSchema-1.4.5.jar
- xml-resolver-1.2.jar
- cxf-2.2.2.jar
第一步:新建一个webservice接口
@WebService
public interface IHelloWorld {
//@WebParam给参数命名,提高可代码可读性。此项可选
public String sayHi(@WebParam(name="text") String text);
}
通过注解@WebService申明为webservice接口
第二步,实现WebService接口
class HelloWorldImpl implements IHelloWorld {
public class Server {
class Client {
private Client(){};
void main(String[] args){
//创建WebService客户端代理工厂
JaxWsProxyfactorybean factory = new JaxWsProxyfactorybean();
factory.setServiceClass(HelloWorld.//设置WebService地址
factory.setAddress("http://localhost:9000/HelloWorld");
IHelloWorld iHelloWorld = (IHelloWorld)factory.create();
System.out.println("invoke webservice...");
System.out.println("message context is:"+iHelloWorld.sayHi("
Josen"));
}
最后是万事俱备,只欠测试了
首先,运行服务端程序
其次,打开浏览器,在地址栏中输入http://localhost:9000/HelloWorld?wsdl(因为cxf自带了一个jetty服务器),查看接口是否发布成功,如里浏览器页面显示下面内容,证明接口发布成功
<wsdl:deFinitions name="IHelloWorldService" targetNamespace="http://client.itdcl.com/">