IDEA8实战-CXF版HelloWorld

简介:
一、准备环境
 
IntelliJ IDEA 8.12
apache-cxf-2.2.2.zip
JDK 1.5
 
资源地址:
 
 
使用向导创建一个工程cxfws1,将apache-cxf-2.2.2.zip解压后里面的lib下的包加入工程。
 
二、开发WebService服务端程序
 
package ws; 

import javax.jws.WebService; 

/** 
* 定义服务接口 

* @author leizhimin 2009-6-11 14:09:14 
*/
 
@WebService 
public  interface HelloWorld { 
        String sayHello(String username); 
}
 
package ws; 

import javax.jws.WebService; 

/** 
* 实现服务接口 

* @author leizhimin 2009-6-11 14:33:42 
*/
 
@WebService 
public  class HelloWorldImpl  implements HelloWorld { 
         public String sayHello(String username) { 
                System.out.println( "正在调用sayHello()方法..."); 
                 return  "Hello " + username +  "!"
        } 
}
 
package ws; 

import org.apache.cxf.endpoint.Server; 
import org.apache.cxf.jaxws.JaxWsServerFactoryBean; 

/** 
* 服务端程序设置与启动程序 

* @author leizhimin 2009-6-11 14:41:23 
*/
 
public  class HelloWorldServer { 
         public  static  void main(String[] args) { 
                JaxWsServerFactoryBean factory =  new JaxWsServerFactoryBean(); 
                factory.setServiceClass(HelloWorldImpl. class); 
                factory.setAddress( "http://localhost:8080/service/HelloWorld"); 
                Server server = factory.create(); 
                server.start(); 
        } 
}
 
服务端程序之所以能这么启动,是因为cxf内置了开源的jetty服务器。
 
三、开发WebService的客户端
 
package client; 

import org.apache.cxf.jaxws.JaxWsProxyFactoryBean; 
import ws.HelloWorld; 

/** 
* 客户端调用代码 

* @author leizhimin 2009-6-11 14:46:45 
*/
 
public  class TestClient { 
         public  static  void main(String[] args) { 
                JaxWsProxyFactoryBean factory =  new JaxWsProxyFactoryBean(); 
                factory.setAddress( "http://localhost:8080/service/HelloWorld"); 
                factory.setServiceClass(HelloWorld.class); 
                HelloWorld helloWorld = (HelloWorld) factory.create(); 
                String msg = helloWorld.sayHello("World"); 
                System.out.println(msg); 
        } 
}
 
四、测试
 
1、运行服务端程序,并通过页面访问地址 http://localhost:8080/service/HelloWorld?wsdl,显示的WSDL代码如下:
     <? xml  version ="1.0"  encoding ="UTF-8"  ?>    
< wsdl:definitions  name ="HelloWorldImplService"  targetNamespace ="http://ws/"  xmlns:ns1 ="http://schemas.xmlsoap.org/soap/http"  xmlns:soap ="http://schemas.xmlsoap.org/wsdl/soap/"  xmlns:tns ="http://ws/"  xmlns:wsdl ="http://schemas.xmlsoap.org/wsdl/"  xmlns:xsd ="http://www.w3.org/2001/XMLSchema" > 
< wsdl:types > 
< xs:schema  attributeFormDefault ="unqualified"  elementFormDefault ="unqualified"  targetNamespace ="http://ws/" xmlns:tns ="http://ws/"  xmlns:xs ="http://www.w3.org/2001/XMLSchema" > 
     < xs:element  name ="sayHello"  type ="tns:sayHello"  />    
     < xs:element  name ="sayHelloResponse"  type ="tns:sayHelloResponse"  />    
< xs:complexType  name ="sayHello" > 
< xs:sequence > 
     < xs:element  minOccurs ="0"  name ="arg0"  type ="xs:string"  />    
     </ xs:sequence > 
     </ xs:complexType > 
< xs:complexType  name ="sayHelloResponse" > 
< xs:sequence > 
     < xs:element  minOccurs ="0"  name ="return"  type ="xs:string"  />    
     </ xs:sequence > 
     </ xs:complexType > 
     </ xs:schema > 
     </ wsdl:types > 
< wsdl:message  name ="sayHelloResponse" > 
     < wsdl:part  element ="tns:sayHelloResponse"  name ="parameters"  />    
     </ wsdl:message > 
< wsdl:message  name ="sayHello" > 
     < wsdl:part  element ="tns:sayHello"  name ="parameters"  />    
     </ wsdl:message > 
< wsdl:portType  name ="HelloWorld" > 
< wsdl:operation  name ="sayHello" > 
     < wsdl:input  message ="tns:sayHello"  name ="sayHello"  />    
     < wsdl:output  message ="tns:sayHelloResponse"  name ="sayHelloResponse"  />    
     </ wsdl:operation > 
     </ wsdl:portType > 
< wsdl:binding  name ="HelloWorldImplServiceSoapBinding"  type ="tns:HelloWorld" > 
     < soap:binding  style ="document"  transport ="http://schemas.xmlsoap.org/soap/http"  />    
< wsdl:operation  name ="sayHello" > 
     < soap:operation  soapAction ="" style="document"  />    
< wsdl:input  name ="sayHello" > 
     < soap:body  use ="literal"  />    
     </ wsdl:input > 
< wsdl:output  name ="sayHelloResponse" > 
     < soap:body  use ="literal"  />    
     </ wsdl:output > 
     </ wsdl:operation > 
     </ wsdl:binding > 
< wsdl:service  name ="HelloWorldImplService" > 
< wsdl:port  binding ="tns:HelloWorldImplServiceSoapBinding"  name ="HelloWorldImplPort" > 
     < soap:address  location ="http://localhost:8080/service/HelloWorld"  />    
     </ wsdl:port > 
     </ wsdl:service > 
     </ wsdl:definitions >
 
说明服务发布成功了。。
 
2、运行客户端程序
Hello World! 

Process finished with exit code 0
 
 
可见,测试圆满成功!


本文转自 leizhimin 51CTO博客,原文链接:http://blog.51cto.com/lavasoft/165940,如需转载请自行联系原作者
相关文章
|
6月前
|
SQL Java 关系型数据库
[笔记]【IDEA2020.2 Ultra】JSP+Servelt+JDBC+Tomcat Helloworld+增删改查(二)
[笔记]【IDEA2020.2 Ultra】JSP+Servelt+JDBC+Tomcat Helloworld+增删改查(二)
|
2月前
|
应用服务中间件
idea搭建WebService HelloWorld程序
idea搭建WebService HelloWorld程序
26 0
|
6月前
|
Java 关系型数据库 MySQL
[笔记]【IDEA2020.2 Ultra】JSP+Servelt+JDBC+Tomcat Helloworld+增删改查(一)
[笔记]【IDEA2020.2 Ultra】JSP+Servelt+JDBC+Tomcat Helloworld+增删改查
|
10月前
|
Java 开发工具
|
小程序 Java Linux
IntelliJ IDEA平台下JNI编程(一)—HelloWorld篇
IntelliJ IDEA平台下JNI编程(一)—HelloWorld篇
IntelliJ IDEA平台下JNI编程(一)—HelloWorld篇
|
IDE Java 开发工具
IntelliJ IDEA - 一篇带你 IDEA 下载/安装,并创建第一个 Hello World 项目
IntelliJ IDEA - 一篇带你 IDEA 下载/安装,并创建第一个 Hello World 项目
101 0
IntelliJ IDEA - 一篇带你 IDEA 下载/安装,并创建第一个 Hello World 项目
|
Java
图解使用IDEA创建第一个Java程序HelloWorld
  前几次给大家分享了怎么在自己的电脑上配置 java 环境,准备工作做好了,我们就要开始我们真正的编码学习了。下面介绍使用 IDEA 创建我们的第一个 HelloWorld 程序。   1、打开 IDEA,创建一个新的项目。
1317 0
|
分布式计算 大数据 Scala