小編今天帶大家了解J2EE web service開發(fā)中的映射數(shù)組復(fù)雜類型怎么理解,文中知識(shí)點(diǎn)介紹的非常詳細(xì)。覺得有幫助的朋友可以跟著小編一起瀏覽文章的內(nèi)容,希望能夠幫助更多想解決這個(gè)問(wèn)題的朋友找到問(wèn)題的答案,下面跟著小編一起深入學(xué)習(xí)“J2EE web service開發(fā)中的映射數(shù)組復(fù)雜類型怎么理解”的知識(shí)吧。
創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括西城網(wǎng)站建設(shè)、西城網(wǎng)站制作、西城網(wǎng)頁(yè)制作以及西城網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,西城網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到西城省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
之所以把數(shù)組類型在調(diào)用web service中作為參數(shù)的實(shí)現(xiàn)鄭重的記錄下來(lái),實(shí)在是因?yàn)閿?shù)組在j2ee web service的實(shí)現(xiàn)不是一件容易的問(wèn)題。至少用Jboss的j2ee web service實(shí)現(xiàn)時(shí)是這樣。在 apache的axis實(shí)現(xiàn)中,數(shù)組作為參數(shù)傳遞根本不值一提,借助工具很方面的就可以實(shí)現(xiàn)。
具體實(shí)現(xiàn):
作為J2EE web service服務(wù)實(shí)現(xiàn)的類必須實(shí)現(xiàn)java.rmi.Remote的接口:
package array; import java.rmi.Remote; import java.rmi.RemoteException; public interface CountUser extends Remote { public int countUser(User[] user) throws RemoteException; }
具體實(shí)現(xiàn)遠(yuǎn)程接口的類:
package array; public class CountUserImpl implements CountUser { public int countUser(User[] user){ for(int i=0;i System.out.println("name "+user[i].getName()+" phone "+ user[i].getPhone()+ " birthday "+user[i].getBirthDay()); } return user.length; } }
作為數(shù)組參數(shù)傳遞的類:
package array; import java.util.Date; public class User { private String name; private String phone; private Date birthDay; public User() { } public User(String name,String phone,Date birthDay){ this.name=name; this.phone=phone; this.birthDay=birthDay; } public void setName(String name) { this.name = name; } public void setPhone(String phone) { this.phone = phone; } public void setBirthDay(Date birthDay) { this.birthDay = birthDay; } public String getName() { return name; } public String getPhone() { return phone; } public Date getBirthDay() { return birthDay; } }
使用Jboss_Home/bin 下的wstools工具生成布署j2ee web service 必須的三個(gè)文件,jax-rpc映射文件,web服務(wù)描述器文件,以及wsdl文檔用于wstools工具的配置文件jboss-config.xml類容如下:
< ?xml version="1.0" encoding="UTF-8"?> < configuration xmlns="http://www.jboss.org/jbossws-tools" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.jboss.org/jbossws-tools http://www.jboss.org/jbossws-tools/schema/jbossws-tool_1_0.xsd" < java-wsdl> < service name="ServiceBeanInterface1" style="rpc" endpoint="array.ServiceBeanInterface1"/> < namespaces target-namespace="http://array" type-namespace="http://array"/> < mapping file="ServiceBeanInterface1.xml"/> < webservices servlet-link="ServiceBeanInterface1"/> < /java-wsdl> < /configuration>
使用 wstools -cp array.CountUser -config jboss-config.xml 命令可以生成布署web服務(wù)所需的三個(gè)文件。另外還得在web.xml文件中把CountUser接口作為servlet發(fā)布
< servlet> < display-name>CountUser Servlet< /display-name> < servlet-name>CountUser< /servlet-name> < servlet-class>array.CountUserImpl< /servlet-class> < /servlet> < servlet-mapping> < servlet-name>CountUser< /servlet-name> < url-pattern>/CountUser< /url-pattern> < /servlet-mapping> < servlet-mapping> < servlet-name>CountUser < url-pattern>/services/* < /servlet-mapping>
僅僅是這樣倒也算很容易了,但是wstools工具并不能在映射文件中正確實(shí)現(xiàn)User[]的映射。因此還需要手工添加如下代碼以實(shí)現(xiàn)User[] 到xml之間的映射。
< java-xml-type-mapping> < java-type>array.User[]< /java-type> < root-type-qname xmlns:typeNS='http://array'>typeNS:User.Array< /root-type-ame> < qname-scope>complexType< /qname-scope> < /java-xml-type-mapping>
打包成war文件,并且布署。J2EE web service服務(wù)端的實(shí)現(xiàn)就完成了。使用的Jboss版本4.04 。
感謝大家的閱讀,以上就是“J2EE web service開發(fā)中的映射數(shù)組復(fù)雜類型怎么理解”的全部?jī)?nèi)容了,學(xué)會(huì)的朋友趕緊操作起來(lái)吧。相信創(chuàng)新互聯(lián)小編一定會(huì)給大家?guī)?lái)更優(yōu)質(zhì)的文章。謝謝大家對(duì)創(chuàng)新互聯(lián)網(wǎng)站的支持!