日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

使用XFire+Spring构建Web Service(二)

發布時間:2023/12/15 javascript 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用XFire+Spring构建Web Service(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

來源:http://www.blogjava.net/amigoxie/archive/2007/09/28/149074.html

在《使用XFire+Spring構建Web Service(一)——helloWorld篇》文中我們通過一個簡單的XFire+Spring實例,該實例的sayHelloWorld()方法通過傳入一個字符串參數來返回一個字符串,而實際的應用過程中,遇到的情況比這個要復雜得多,例如,傳入參數是對象、返回自定義對象、返回數組、返回列表。下面讓我們在此文中對XFire+Spring進行更深層的探討吧。

一.?????????????本例概述

在本例中,我們將在業務邏輯類是一個用戶的業務邏輯類,包括創建用戶、獲取單個用戶、獲取用戶數組、獲取用戶列表四個方法,因該文講的是XFire+Spring構建webservice,所以在該例中我們并不涉及具體的數據庫操作,而只是提供模擬實現。方法描述如下:

1)?創建用戶方法:createUser(User user)

通過傳入User對象作為參數來才創建用戶;

2)?通過用戶名獲取用戶信息方法:getUser(String loginName)

根據用戶名獲取某用戶對象,該方法返回的是一個User對象;

3)?返回所有用戶的數組方法:getUserArray()

返回為User數組;

4)?返回所有用戶的列表的方法:getUserList()

返回為List對象,放入的對象為User類型。

二.?????????????數據對象User.java

在上篇的例子中,src/webservice目錄下新建example2目錄,并在example2目錄下建立User.java文件,下面看看數據對象User.java的內容,代碼如下:

package?webservice.example2;

import?java.util.Date;

/**
?*用戶對象.??
?*
@author<a?href="mailto:xiexingxing1121@126.com">AmigoXie</a>
?*@version1.0
?*Creationdate:2007-9-28-上午10:42:44
?
*/

publicclass?User?
implements?java.io.Serializable?{
????privatestaticfinallongserialVersionUID?
=?1L;

????
/**用戶名*/
????
private?String?loginName;

????
/**用戶密碼*/
????
private?String?password;

????
/**手機號*/
????
private?String?mobile;

????
/**創建時間*/
????
private?Date?createTime;

????
public?Date?getCreateTime()?{
???????
return?createTime;
????}


????
public?void?setCreateTime(Date?createTime)?{
???????
this.createTime?=?createTime;
????}


????
public?String?getLoginName()?{
???????
return?loginName;
????}


????
public?void?setLoginName(String?loginName)?{
???????
this.loginName?=?loginName;
????}


????
public?String?getMobile()?{
???????
return?mobile;
????}


????
public?void?setMobile(String?mobile)?{
???????
this.mobile?=?mobile;

????}


????
public?String?getPassword()?{
???????
return?password;
????}


????
public?void?setPassword(String?password)?{
???????
this.password?=?password;
????}


????
public?String?toString()?{
???????StringBuffer?sb?
=?new?StringBuffer();
???????sb.append(
"loginName="?+?this.loginName);
???????sb.append(
"|password="?+?this.password);
???????sb.append(
"|mobile="?+?this.mobile);
???????sb.append(
"|createDate="?+?this.createTime);
???????
return?sb.toString();
????}

}


三.?????????????用戶業務類UserService.java及其實現UserServiceImpl.java

下面讓我們來看看本例的業務邏輯接口類UserService.java的內容:

package?webservice.example2;

import?java.util.List;

/**
?*用戶業務類.
?*
@author<a?href="mailto:xiexingxing1121@126.com">AmigoXie</a>
?*@version1.0
?*Creationdate:2007-9-28-上午10:37:09
?
*/

publicinterface?UserService?
{
????
/**
?????*獲取用戶對象.
?????*@paramloginName用戶名
?????*@return返回用戶對象
?????
*/

????
public?User?getUser(String?loginName);

????
/**
?????*創建用戶.
?????*@paramuser用戶對象
?????*@return返回創建的對象的toString()方法返回的內容
?????
*/

????
public?String?createUser(User?user);

????
/**
?????*獲取用戶信息數組.
?????*@return返回用戶信息數組
?????
*/

????
public?User[]?getUserArray();
????
????
/**
?????*獲得用戶信息列表.
?????*@return返回用戶信息列表
?????*
@author<a?href="mailto:xiexingxing1121@126.com">AmigoXie</a>
?????*Creationdate:2007-9-28-下午12:55:37
?????
*/

????
public?List<User>?getUserList();
}


它的實現類UserServiceImpl.java的內容如下:

package?webservice.example2;

import?java.util.ArrayList;
import?java.util.Date;
import?java.util.List;

/**
?*用戶業務實現類.
?*
@author<a?href="mailto:xiexingxing1121@126.com">AmigoXie</a>
?*@version1.0
?*Creationdate:2007-9-28-上午10:54:11
?
*/

publicclass?UserServiceImpl?
implements?UserService?{
????
/**
?????*獲取用戶對象.
?????*@paramloginName用戶名
?????*@return返回用戶對象
?????
*/

????
public?User?getUser(String?loginName)?{
???????User?user?
=?new?User();
???????user.setLoginName(loginName);
???????user.setPassword(
"12345678");
???????user.setMobile(
"13812345678");
???????user.setCreateTime(
new?Date());
???????
return?user;
????}


????
/**
?????*創建用戶.
?????*@paramuser用戶對象
?????*@return返回創建的對象的toString()方法返回的內容
?????
*/

????
public?String?createUser(User?user)?{
???????user.setCreateTime(
new?Date());
???????
return?user.toString();
????}


????
/**
?????*獲取用戶信息數組.
?????*@return返回用戶信息數組
?????
*/

????
public?User[]?getUserArray()?{
???????User[]?userList?
=?new?User[4];
???????userList[
0]?=?getUser("阿蜜果");
???????userList[
1]?=?getUser("sterning");
???????userList[
2]?=?getUser("娟子");
???????userList[
3]?=?getUser("老肖");
???????
return?userList;
????}


????
/**
?????*獲得用戶信息列表.
?????*@return返回用戶信息列表
?????*
@author<a?href="mailto:xiexingxing1121@126.com">AmigoXie</a>
?????*Creationdate:2007-9-28-下午12:55:37
?????
*/

????
public?List<User>?getUserList()?{
???????List
<User>?userList?=?new?ArrayList<User>();
???????userList.add(getUser(
"阿蜜果"));
???????userList.add(getUser(
"sterning"));
???????userList.add(getUser(
"娟子"));
???????userList.add(getUser(
"老肖"));
???????
return?userList;
????}

}

注意:getUserList()方法返回的List中需要采用泛型,不然會部署失敗。

到此為止,我們的業務已經完成,剩下的工作只是修改配置文件和編寫測試類來進行測試。讓我們繼續往下走吧。

四.?????????????配置文件applicationContext.xmlxfire-servlet.xml的修改

在本小節中,我們需要修改配置文件。首先在applicationContext.xml文件中添加用戶邏輯bean的定義,添加的代碼如下:

<bean?id="UserBean"?class="webservice.example2.UserServiceImpl"/>

接下來我們還需要修改xfire-servlet.xml文件來暴露我們的Web Service,修改后的該文件內容如下所示:

<entry?key="/UserService.ws">????????????????????

<ref?bean="UserService"?/>????????????????

</entry>

并添加如下bean的定義:

<bean?id="UserService"?parent="baseWebService">
???????
<!--?業務服務bean?-->
???????
<property?name="serviceBean"?ref="UserBean"?/>
???????
<!--?業務服務bean的窄接口類?-->
???????
<property?name="serviceClass"?value="webservice.example2.UserService"?/>
????
</bean>

?? 我們的Web Service已經開發完成,啟動本項目后,可通過瀏覽器訪問:http://localhost:8080/webservice_helloworld/UserService.ws?wsdl,我們可以在瀏覽器中看到該例的WSDL信息。

五.?????????????Web Service測試

在本小節我們將對上述完成的Web Service進行測試,首先我們在src目錄下的client.xml文件增加如下內容:

<!--?獲取用戶信息的例子?-->
?????
<bean?id="testUserWebService"?class="org.codehaus.xfire.spring.remoting.XFireClientFactoryBean">
???????
<property?name="serviceClass">??????????????<value>webservice.example2.UserService</value>?
???????
</property>??????
????????
<property?name="wsdlDocumentUrl">?????????
<value>http://localhost:8080/webservice_helloworld/UserService.ws?wsdl</value>???????
????????
</property>??????
?????
</bean>

???? 接著我們在src/test目錄下建立UserServiceClientTest.java類,編寫測試代碼如下:

package?test;

import?java.util.List;

import?org.springframework.context.ApplicationContext;
import?org.springframework.context.support.ClassPathXmlApplicationContext;

import?webservice.example2.User;
import?webservice.example2.UserService;

/**
?*?用戶業務測試類.????
?*?
@author?<a?href="mailto:xiexingxing1121@126.com">AmigoXie</a>
?*?
@version?1.0
?*?Creation?date:?2007-9-28?-?下午12:03:06
?
*/

public?class?UserServiceClientTest?{
????
public?static?void?main(String[]?args)?throws?Exception?{
????????UserServiceClientTest?test?
=?new?UserServiceClientTest();
????????test.testClient();
????}
?
????
????
public?void?testClient()?throws?Exception?{
????????ApplicationContext?ctx?
=?new?ClassPathXmlApplicationContext(
????????????????
"client.xml");????
????????UserService?userService?
=?(UserService)?ctx.getBean("testUserWebService");
????????
????????
//測試getUser()方法
????????System.out.println("--------------getUser()------------");
????????User?user?
=?userService.getUser("阿蜜果");
????????System.out.println(user);
????????
????????
//測試getArray()方法
????????System.out.println("--------------getUserArray()------------");
????????User[]?userArray?
=?userService.getUserArray();
????????
for?(int?i?=?0;?i?<?userArray.length;?i++)?{
????????????System.out.println(
"i="?+?i?+?"|"?+?userArray[i]);
????????}

????????
????????
//測試createUser()方法
????????System.out.println("--------------createUser()------------");
????????User?newUser?
=?new?User();
????????newUser.setLoginName(
"離離");
????????newUser.setPassword(
"123");
????????newUser.setMobile(
"13666666666");
????????String?result?
=?userService.createUser(newUser);
????????System.out.println(result);
????????
????????
//測試getUserList()方法
????????List<User>?userList?=?userService.getUserList();
????????System.out.println(
"--------------getUserList()------------");
????????
for?(int?i?=?0;?i?<?userList.size();?i++)?{
????????????System.out.println(
"i="?+?i?+?"|"?+?userList.get(i));
????????}

????}

}

??? 大家可以運行該類,來查看運行效果。


總結

以上是生活随笔為你收集整理的使用XFire+Spring构建Web Service(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。