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

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

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

開(kāi)通VIP
Java6 WebService 使用復(fù)雜對(duì)象
Java6 WebService 使用復(fù)雜對(duì)象
 
復(fù)雜對(duì)象可表示的語(yǔ)義比簡(jiǎn)單對(duì)象強(qiáng)大很多,這里看看在Java6的WebService中如何使用復(fù)雜對(duì)象參數(shù)。
這里的參數(shù)分兩類(lèi),一類(lèi)是入?yún)?,一?lèi)是返回值。
 
復(fù)雜對(duì)象在并不像想象中那么簡(jiǎn)單,其中還有一些玄機(jī)。請(qǐng)看實(shí)例:
 
1、開(kāi)發(fā)服務(wù),統(tǒng)統(tǒng)在服務(wù)端
 
package lavasoft.server;

import javax.jws.WebService;
import javax.xml.ws.Endpoint;

/**
* Java6開(kāi)發(fā)的WebService服務(wù)端
*
* @author leizhimin 2009-11-16 10:24:13
*/

@WebService
public class Java6WS {

        //返回一個(gè)復(fù)雜對(duì)象
        public UserBean doSomething1(String username, String address, boolean flag) {
                return new UserBean(username, address, flag);
        }

        //接收一個(gè)復(fù)雜對(duì)象
        public String doSomething2(Foo foo) {
                return foo.toString();
        }

        public static void main(String[] args) {
                //發(fā)布一個(gè)WebService
                Endpoint.publish("http://192.168.14.117:9999/java6ws/Java6WS", new Java6WS());
        }
}
 
package lavasoft.server;

/**
* 用戶信息
*
* @author leizhimin 2009-11-16 16:43:35
*/

public class UserBean {
        private String username;
        private String address;
        private boolean flag;

        public UserBean() {
        }

        public UserBean(String username, String address, boolean flag) {
                this.username = username;
                this.address = address;
                this.flag = flag;
        }

        public String getUsername() {
                return username;
        }

        public void setUsername(String username) {
                this.username = username;
        }

        public String getAddress() {
                return address;
        }

        public void setAddress(String address) {
                this.address = address;
        }

        public boolean isFlag() {
                return flag;
        }

        public void setFlag(boolean flag) {
                this.flag = flag;
        }

        @Override
        public String toString() {
                return "UserBean{" +
                                "username='" + username + '\'' +
                                ", address='" + address + '\'' +
                                ", flag=" + flag +
                                '}';
        }
}
 
package lavasoft.server;

/**
* Created by IntelliJ IDEA.
*
* @author leizhimin 2009-11-16 17:09:46
*/

public class Foo {
        private String name;
        private String sex;

        public Foo() {
        }

        public Foo(String name, String sex) {
                this.name = name;
                this.sex = sex;
        }

        public String getName() {
                return name;
        }

        public void setName(String name) {
                this.name = name;
        }

        public String getSex() {
                return sex;
        }

        public void setSex(String sex) {
                this.sex = sex;
        }

        @Override
        public String toString() {
                return "Foo{" +
                                "sex='" + sex + '\'' +
                                ", name='" + name + '\'' +
                                '}';
        }
}
 
2、生成客戶端代碼
 
 
 
可以清楚的看出,在客戶端代碼中,已經(jīng)生成了服務(wù)接口和服務(wù)實(shí)現(xiàn)類(lèi),還生成了UserBean和Foo兩個(gè)類(lèi),而這兩個(gè)類(lèi)和服務(wù)端的內(nèi)容不同。
 
3、寫(xiě)客戶端測(cè)試代碼
 
package lavasoft;

import lavasoft.wsclient.Foo;
import lavasoft.wsclient.Java6WS;
import lavasoft.wsclient.Java6WSService;
import lavasoft.wsclient.UserBean;

/**
* 測(cè)試Java6 WS生成的客戶端代碼
*
* @author leizhimin 2009-11-16 17:05:00
*/

public class TestClient {
        public static void main(String[] args) {
                //創(chuàng)建一個(gè)客戶端服務(wù)對(duì)象
                Java6WS java6WS = new Java6WSService().getJava6WSPort();

                System.out.println("----------java6WS.doSomething1-------------");
                //調(diào)用服務(wù)方法,并得到方法返回值
                UserBean userBean = java6WS.doSomething1("zhangsan", "華中路", true);
                //打印服務(wù)的返回值
                System.out.println(userBean.toString());
                System.out.println(userBean.getUsername() + " " + userBean.getAddress() + " " + userBean.isFlag());

                System.out.println("----------java6WS.doSomething2-------------");
                Foo f = new Foo();
                f.setName("李四");
                f.setSex("Man");
                String sf = java6WS.doSomething2(f);
                System.out.println(sf);
        }
}
 
4、執(zhí)行客戶端
 
執(zhí)行前先啟動(dòng)服務(wù)端。
執(zhí)行結(jié)果如下:
 
可以看出,測(cè)試很成功。
 
5、總結(jié)
 
這里面其實(shí)有些細(xì)節(jié),需要說(shuō)明白:
1)、對(duì)于復(fù)雜對(duì)象,必須有一個(gè)不帶參數(shù)的構(gòu)造方法。
2)、服務(wù)端覆蓋Object的方法不能在客戶端復(fù)原,比如toString方法。
3)、服務(wù)端的帶參數(shù)構(gòu)造方法在客戶端失效。
 
以上三點(diǎn)是非常重要的,如果不知道會(huì)很郁悶,老出錯(cuò)還找不到原因。

本文出自 “熔 巖” 博客,請(qǐng)務(wù)必保留此出處http://lavasoft.blog.51cto.com/62575/228152

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
MyEclipse 8.6 創(chuàng)建 jax-ws 的詳細(xì)步驟(有截圖)
利用AXIS開(kāi)發(fā)Webservice(四) —— 如何拋出自定義異常
Jsp Servlet JavaBean JDBC登陸實(shí)例
CXF方式發(fā)布WebService全步驟
JAVA6開(kāi)發(fā)WebService (一)
WebService介紹
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服