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
閱讀(637)
評論(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(14079)
2.?iframe 高度自適應(9304)
3.?Linux 抓包分析工具。(8767)
4.?dhtmlxTree 使用示例(8346)
5.?Mysql 自啟動腳本(4786)
評論排行榜
1.?DWR Reverse 一些細節(4)
2.?DWR 跨域請求(3)
3.?Linux啟動級別&Samba服務自啟動設置(2)
4.?iframe 高度自適應(2)
5.?Ie 8 的window.open打開新窗口無反應問題。(2)
主站蜘蛛池模板:
久久久久亚洲AV片无码下载蜜桃
|
久视频精品免费观看99
|
日本久久久免费高清
|
亚洲免费观看在线视频
|
亚洲高清视频免费
|
久久亚洲国产精品成人AV秋霞
|
麻豆精品成人免费国产片
|
亚洲精品国产字幕久久不卡
|
a级成人毛片免费图片
|
亚洲精品国精品久久99热一
|
无码少妇精品一区二区免费动态
|
精品国产_亚洲人成在线
|
国产成人无码免费视频97
|
特级毛片全部免费播放
|
国产啪亚洲国产精品无码
|
三根一起会坏掉的好痛免费三级全黄的视频在线观看
|
毛片免费vip会员在线看
|
亚洲中文字幕精品久久
|
啦啦啦在线免费视频
|
无码 免费 国产在线观看91
|
情人伊人久久综合亚洲
|
未满十八18禁止免费无码网站
|
亚洲一级黄色大片
|
精品国产一区二区三区免费看
|
美景之屋4在线未删减免费
|
亚洲人成网站18禁止
|
www.亚洲精品.com
|
无码人妻一区二区三区免费看
|
国产午夜亚洲精品
|
亚洲精品WWW久久久久久
|
4399影视免费观看高清直播
|
国产亚洲福利在线视频
|
77777亚洲午夜久久多人
|
亚洲黄色免费观看
|
欧洲美女大片免费播放器视频
|
久久亚洲国产视频
|
免费看片免费播放
|
免费视频一区二区
|
日韩欧美亚洲中文乱码
|
亚洲美女又黄又爽在线观看
|
日韩av无码成人无码免费
|