josson.jin
天地生人,有一人應有一人之業;人生在世,生一日當盡一日之勤!
BlogJava
首頁
新隨筆
新文章
聯系
聚合
管理
posts - 122, comments - 25, trackbacks - 0
Apache CXF: Writing a service with Spring
一、設置構建路徑(必要的jar包)
commons-logging-1.1.jar
geronimo-activation_1.1_spec-1.0-M1.jar (or Sun's Activation jar)
geronimo-annotation_1.0_spec-1.1.jar (JSR 250)
geronimo-javamail_1.4_spec-1.0-M1.jar (or Sun's JavaMail jar)
geronimo-servlet_2.5_spec-1.1-M1.jar (or Sun's Servlet jar)
geronimo-ws-metadata_2.0_spec-1.1.1.jar (JSR 181)
jaxb-api-2.0.jar
jaxb-impl-2.0.5.jar
jaxws-api-2.0.jar
neethi-2.0.jar
saaj-api-1.3.jar
saaj-impl-1.3.jar
stax-api-1.0.1.jar
wsdl4j-1.6.1.jar
wstx-asl-3.2.1.jar
XmlSchema-1.2.jar
xml-resolver-1.2.jar
aopalliance-1.0.jar
spring-core-2.0.4.jar
spring-beans-2.0.4.jar
spring-context-2.0.4.jar
spring-web-2.0.4.jar
cxf-2.0-incubator.jar
二、編寫服務類
a). 接口類HelloService.java
package
demo.spring;
import
java.util.List;
import
javax.jws.WebParam;
import
javax.jws.WebService;
import
demo.spring.model.UserInfoBean;
@WebService
public
interface
HelloService
{
public
String sayHello(@WebParam(name
=
"
name
"
)String text);
public
UserInfoBean getUserInfo(@WebParam(name
=
"
username
"
)String name);
public
List
<
UserInfoBean
>
getUsers();
}
b).實現類HelloServiceImpl.java
package
demo.spring;
import
java.util.ArrayList;
import
java.util.List;
import
javax.jws.WebService;
import
demo.cxf.server.HelloService;
import
demo.spring.model.UserInfoBean;
@WebService(endpointInterface
=
"
demo.spring.HelloService
"
)
public
class
HelloServiceImpl
implements
HelloService
{
public
String sayHello(String text)
{
return
"
Hello,
"
.concat(text);
}
public
UserInfoBean getUserInfo(String username)
{
UserInfoBean user
=
new
UserInfoBean();
user.setRealname(
"
捷克
"
);
user.setUsername(username);
user.setEmail(
"
jack@chaina.com
"
);
return
user;
}
public
List
<
UserInfoBean
>
getUsers()
{
List
<
UserInfoBean
>
users
=
new
ArrayList
<
UserInfoBean
>
();
users.add(getUserInfo(
"
john
"
));
return
users;
}
}
三、聲明服務Bean
在WEB-INF目錄下創建成一個beans.xml文件,以聲明endpoint bean:
<?
xml version="1.0" encoding="UTF-8"
?>
<
beans
xmlns
="http://www.springframework.org/schema/beans"
xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jaxws
="http://cxf.apache.org/jaxws"
xsi:schemaLocation
="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"
>
<
import
resource
="classpath:META-INF/cxf/cxf.xml"
/>
<
import
resource
="classpath:META-INF/cxf/cxf-extension-soap.xml"
/>
<
import
resource
="classpath:META-INF/cxf/cxf-servlet.xml"
/>
<
jaxws:endpoint
id
="helloService"
implementor
="demo.spring.HelloServiceImpl"
address
="/HelloService"
/>
</
beans
>
若使用Spring定義的bean,也可這樣聲明:
<
bean
id
="helloService"
class
="demo.spring.HelloServiceImpl"
/>
<
jaxws:endpoint
id
="helloServiceImpl"
implementor
="#helloService"
address
="/HelloService"
/>
四、定義Servlet
修改WEB-INF/目錄下的web.xml文件,添加如下定義:
<
context-param
>
<
param-name
>
contextConfigLocation
</
param-name
>
<
param-value
>
WEB-INF/beans.xml
</
param-value
>
</
context-param
>
<
listener
>
<
listener-class
>
org.springframework.web.context.ContextLoaderListener
</
listener-class
>
</
listener
>
<
servlet
>
<
servlet-name
>
CXFServlet
</
servlet-name
>
<
display-name
>
CXF Servlet
</
display-name
>
<
servlet-class
>
org.apache.cxf.transport.servlet.CXFServlet
</
servlet-class
>
<
load-on-startup
>
1
</
load-on-startup
>
</
servlet
>
<
servlet-mapping
>
<
servlet-name
>
CXFServlet
</
servlet-name
>
<
url-pattern
>
/*
</
url-pattern
>
</
servlet-mapping
>
五、客戶端代碼
client_beans.xml
<?
xml version="1.0" encoding="UTF-8"
?>
<
beans
xmlns
="http://www.springframework.org/schema/beans"
xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jaxws
="http://cxf.apache.org/jaxws"
xsi:schemaLocation
="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schema/jaxws.xsd"
>
<
bean
id
="client"
class
="demo.spring.HelloService"
factory-bean
="clientFactory"
factory-method
="create"
/>
<
bean
id
="clientFactory"
class
="org.apache.cxf.jaxws.JaxWsProxyFactoryBean"
>
<
property
name
="serviceClass"
value
="demo.spring.HelloService"
/>
<
property
name
="address"
value
="http://localhost:8080/cxf/HelloService"
/>
</
bean
>
</
beans
>
client.java
ClassPathXmlApplicationContext context
=
new
ClassPathXmlApplicationContext(
new
String[]
{
"
demo/spring/client/client_beans.xml
"
}
);
HelloService client
=
(HelloService)context.getBean(
"
client
"
);
String response
=
client.sayHello(
"
Joe
"
);
System.out.println(
"
Response:
"
+
response);
UserInfoBean user
=
client.getUserInfo(
"
jack
"
);
System.out.println(user.getUsername());
List
<
UserInfoBean
>
users
=
client.getUsers();
for
(UserInfoBean u : users)
{
System.out.println(u.getUsername());
}
System.exit(
0
);
posted on 2007-11-21 23:21
josson
閱讀(635)
評論(0)
編輯
收藏
所屬分類:
java 開發
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
基于客戶端(瀏覽器)證書身份認證的方法
Java序列化算法原理
GC垃圾回收機制
通用業務引用查詢服務實現
通過Findbugs 找出程序中隱藏的bug
java反編譯工具
Eclipse 常用插件.
ibatis 自動生成的主鍵
項目構建工具之Maven
AXIS快速生成客戶端調用文件
Copyright ©2025 josson Powered by:
博客園
模板提供:
滬江博客
<
2007年11月
>
日
一
二
三
四
五
六
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(3)
給我留言
查看公開留言
查看私人留言
隨筆分類
Hibernate(2)
java 開發 (31)
Linux(13)
Spring(4)
web開發(20)
即時通訊(2)
大雜燴(15)
數據庫(7)
軟件設計(2)
問題記錄(1)
項目管理(8)
隨筆檔案
2011年12月 (2)
2011年6月 (1)
2011年5月 (1)
2011年2月 (1)
2011年1月 (3)
2010年12月 (3)
2010年11月 (1)
2010年9月 (1)
2010年7月 (1)
2010年6月 (1)
2010年4月 (3)
2009年11月 (1)
2009年9月 (3)
2009年8月 (1)
2009年7月 (1)
2009年6月 (2)
2009年5月 (1)
2009年3月 (4)
2009年2月 (1)
2009年1月 (1)
2008年12月 (2)
2008年11月 (1)
2008年10月 (1)
2008年9月 (2)
2008年8月 (1)
2008年7月 (3)
2008年6月 (2)
2008年5月 (2)
2008年3月 (2)
2008年1月 (15)
2007年12月 (8)
2007年11月 (15)
2007年7月 (2)
2007年6月 (3)
2007年5月 (7)
2007年4月 (7)
收藏夾
EXT(6)
java 開發(13)
Linux(3)
SWT/JFace(1)
開源(1)
搜索技術(1)
搜索
最新評論
1.?re: iframe 高度自適應
1909434428@qq.com
--3a教程
2.?re: firefox中證書的使用
thanks
--mroff
3.?re: IE7 對話框樣式[未登錄]
fsdfsdf
--dd
4.?re: Debian 修改IP地址或DNS
IP地址配置文件: "/etc/network/interface" 文件少了個s
/etc/network/interfaces
--debian
5.?re: dhtmlxTree 使用示例
rt
--tr
閱讀排行榜
1.?Debian 修改IP地址或DNS(14077)
2.?iframe 高度自適應(9302)
3.?Linux 抓包分析工具。(8766)
4.?dhtmlxTree 使用示例(8344)
5.?Mysql 自啟動腳本(4785)
評論排行榜
1.?DWR Reverse 一些細節(4)
2.?DWR 跨域請求(3)
3.?Linux啟動級別&Samba服務自啟動設置(2)
4.?iframe 高度自適應(2)
5.?Ie 8 的window.open打開新窗口無反應問題。(2)
主站蜘蛛池模板:
国产一级特黄高清免费大片
|
国产亚洲精品久久久久秋霞
|
真人无码作爱免费视频
|
AV在线播放日韩亚洲欧
|
1000部啪啪毛片免费看
|
亚洲AV无码成人精品区狼人影院
|
亚洲色成人WWW永久网站
|
69成人免费视频
|
国产日韩精品无码区免费专区国产
|
亚洲欧洲日产国码久在线观看
|
永久中文字幕免费视频网站
|
中文字幕无码毛片免费看
|
亚洲久悠悠色悠在线播放
|
亚洲综合图色40p
|
国内自产少妇自拍区免费
|
av永久免费网站在线观看
|
亚洲欧洲AV无码专区
|
亚洲色婷婷综合久久
|
日韩精品视频免费观看
|
免费人成毛片动漫在线播放
|
亚洲av无码专区在线观看亚
|
亚洲福利视频导航
|
亚洲国产精品成人久久蜜臀
|
国产高清免费视频
|
国内精品一级毛片免费看
|
狼人大香伊蕉国产WWW亚洲
|
亚洲无砖砖区免费
|
国产亚洲色视频在线
|
国产男女性潮高清免费网站
|
亚洲综合免费视频
|
久久精品免费观看
|
久青草国产免费观看
|
亚洲日产乱码一二三区别
|
亚洲综合网美国十次
|
精品久久香蕉国产线看观看亚洲
|
日韩免费一级毛片
|
女人18毛片a级毛片免费视频
|
59pao成国产成视频永久免费
|
美女视频黄a视频全免费网站色窝
|
最好2018中文免费视频
|
亚洲av无码专区在线观看亚
|