免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
j2ee web service開(kāi)發(fā)(一) 映射數(shù)組復(fù)雜類(lèi)型 - 一切從實(shí)用出發(fā)! - B...

 之所以把數(shù)組類(lèi)型在調(diào)用web service中作為參數(shù)的實(shí)現(xiàn)鄭重的記錄下來(lái),實(shí)在是因?yàn)閿?shù)組在j2ee web service的實(shí)現(xiàn)不是一件容易的問(wèn)題。至少用Jbossj2ee web service實(shí)現(xiàn)時(shí)是這樣. 好象網(wǎng)上關(guān)于web service的比較深入一點(diǎn)的資料比較少,關(guān)于j2ee web service的資料就更少了. 這里只記錄了符合WS I BP 標(biāo)準(zhǔn)的SOAP四種消息傳遞模式中的RPC/Literal消息傳遞模式。這個(gè)請(qǐng)參考書(shū)籍《j2ee web service 高級(jí)編程》一書(shū)。該書(shū)也只能是參考了,只是介紹了web service的理論實(shí)現(xiàn)及一點(diǎn)jax-rpc API,并且還有蠻多印刷錯(cuò)字。雖然jax-rpc API的目標(biāo)之一就是為了在各種java web service實(shí)現(xiàn)技術(shù)中提供一個(gè)便攜的手段,然而各種j2ee服務(wù)器的web service技術(shù)還是有些差別的,這個(gè)還是造成了程序不能直接在各種j2ee服務(wù)器之間毫無(wú)修改的移植。在 apacheaxis實(shí)現(xiàn)中,數(shù)組作為參數(shù)傳遞根本不值一提,借助工具很方面的就可以實(shí)現(xiàn)。

但是在jboss中的ws實(shí)現(xiàn)中確不是一件便利的事情。因?yàn)橛魫灹撕芫茫l(fā)點(diǎn)牢騷:)具體實(shí)現(xiàn):

    作為web service服務(wù)實(shí)現(xiàn)的類(lèi)必須實(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)程接口的類(lèi):

package array;

 

public class CountUserImpl implements CountUser {

    public int countUser(User[] user){

        for(int i=0;i<user.length;i++){

            System.out.println("name "+user[i].getName()+"  phone  "+

                               user[i].getPhone()+ " birthday "+user[i].getBirthDay());

        }

        return user.length;

    }

 

}

 

  作為數(shù)組參數(shù)傳遞的類(lèi):

 

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類(lèi)容如下:

<?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</servlet-name>

    <url-pattern>/services/*</url-pattern>

  </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文件,并且布署。服務(wù)端的實(shí)現(xiàn)就完成了。打包的war文件下載  使用的Jboss版本4.04
因?yàn)槠蛟S還有分類(lèi)的原因,客戶(hù)端的實(shí)現(xiàn)將記錄在下一篇隨筆里 如果你想賜教或者討論,歡迎加入QQ群:30406099

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
如何學(xué)習(xí)java1
《J2EE面試題集錦(附答案)》-
在集成Spring Axis 的環(huán)境下webservice的發(fā)布和部署 - Aflye...
webservice 服務(wù)端例子+客戶(hù)端例子+CXF整合spring服務(wù)端測(cè)試+生成wsdl文件 +cxf客戶(hù)端代碼自動(dòng)生成
WebService CXF學(xué)習(xí)(高級(jí)篇1):整合Spring框架
CXF框架入門(mén)實(shí)例
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服