posts - 32, comments - 153, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
          昨天把Web服務(wù)架好了,那今天自然要想怎么來遠(yuǎn)程調(diào)用了.
          于是寫了如下代碼:
          /**
          ?*?org.zsu.zouang
          ?*?2006-11-29
          ?
          */

          package?org.zsu.zouang;

          import?java.net.MalformedURLException;
          import?java.net.URL;
          import?java.rmi.RemoteException;

          import?javax.xml.namespace.QName;
          import?javax.xml.rpc.ServiceException;

          import?org.apache.axis.client.Call;
          import?org.apache.axis.client.Service;

          /**
          ?*?2006-11-29
          ?*?
          @author?Zou?Ang
          ?*?Contact?<a?href?="mailto:richardeee@gmail.com">Zou?Ang</a>
          ?
          */

          public?class?MyBookServiceClient?{
          ????
          private?static?final?String?endPoint?=?"http://localhost:8080/axis/org/zsu/zouang/BookTitleService.jws?wsdl";
          ????
          public?static?void?main(String?args[]){
          ????????Service?service?
          =?new?Service();
          ????????
          try?{
          ????????????Call?call?
          =?(Call)service.createCall();
          ????????????call.setTargetEndpointAddress(
          new?URL(endPoint));
          ????????????call.setOperationName(
          new?QName("getBookTitle"));
          ????????????String?result?
          =?(String)call.invoke(new?Object[]{"0130895601"});
          ????????????System.out.println(result);
          ????????}
          ?catch?(ServiceException?e)?{
          ????????????
          //?TODO?Auto-generated?catch?block
          ????????????e.printStackTrace();
          ????????}
          ?catch?(MalformedURLException?e)?{
          ????????????
          //?TODO?Auto-generated?catch?block
          ????????????e.printStackTrace();
          ????????}
          catch(RemoteException?e){
          ????????????e.printStackTrace();
          ????????}

          ????}

          }

          控制臺輸出:
          -?Unable?to?find?required?classes?(javax.activation.DataHandler?and?javax.mail.internet.MimeMultipart).?Attachment?support?is?disabled.
          Advanced?Java?
          2?Platform?How?to?Program
          成功啦!
          在代碼中加上這一句:
          System.out.println(call.getResponseMessage().getSOAPPartAsString());
          會看到控制臺輸出:
          <?xml?version="1.0"?encoding="utf-8"?>
          <soapenv:Envelope?xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"?xmlns:xsd="http://www.w3.org/2001/XMLSchema"?xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

          ????
          <soapenv:Body>
          ????
          <getBookTitleResponse?soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
          ????????
          <getBookTitleReturn?xsi:type="xsd:string">
          ????????????Advanced?Java?2?Platform?How?to?Program
          ????????
          </getBookTitleReturn>
          ????
          </getBookTitleResponse>
          ????
          </soapenv:Body>
          </soapenv:Envelope>

          改進(jìn)了一下,使用Swing建立一個圖形化界面:
          /**
          ?*?2006-11-29
          ?*?
          @author?Zou?Ang
          ?*?Contact?<a?href?="mailto:richardeee@gmail.com">Zou?Ang</a>
          ?
          */

          public?class?MyBookClient?extends?JFrame?{

          ????
          private?final?static?int?FRAME_WIDTH?=?500;
          ????
          private?final?static?int?FRAME_HEIGHT?=?100;
          ????
          ????
          public?MyBookClient(String?title)?{
          ????????
          super(title);
          ????????getContentPane().setLayout(
          new?GridLayout(2?,?2));
          ????????
          final?String?endPoint?=?"http://localhost:8080/axis/org/zsu/zouang/BookTitleService.jws?wsdl";
          ????????
          final?JLabel?resultLabel?=?new?JLabel();
          ????????
          final?JComboBox?bookISDNBox?=?new?JComboBox();
          ????????bookISDNBox.addItem(
          "0130895601");
          ????????bookISDNBox.addItem(
          "0430895717");
          ????????bookISDNBox.addItem(
          "0430293636");
          ????????bookISDNBox.addItem(
          "0130923613");
          ????????
          ????????
          this.setSize(FRAME_WIDTH,?FRAME_HEIGHT);
          ????????JButton?serviceButton?
          =?new?JButton("Get?Book?Title");
          ????????serviceButton.addActionListener(
          new?ActionListener(){

          ????????????
          public?void?actionPerformed(ActionEvent?e)?{
          ????????????????
          //?TODO?Auto-generated?method?stub
          ????????????????try?{
          ????????????????????Service?service?
          =?new?Service();
          ????????????????????Call?call?
          =?(Call)service.createCall();
          ????????????????????call.setTargetEndpointAddress(
          new?URL(endPoint));
          ????????????????????call.setOperationName(
          new?QName("getBookTitle"));
          ????????????????????String?result?
          =?(String)call.invoke(bookISDNBox.getSelectedObjects());
          ????????????????????resultLabel.setText(result);
          ????????????????}
          ?catch?(AxisFault?e1)?{
          ????????????????????
          //?TODO?Auto-generated?catch?block
          ????????????????????e1.printStackTrace();
          ????????????????}
          ?catch?(MalformedURLException?e1)?{
          ????????????????????
          //?TODO?Auto-generated?catch?block
          ????????????????????e1.printStackTrace();
          ????????????????}
          ?catch?(RemoteException?e1)?{
          ????????????????????
          //?TODO?Auto-generated?catch?block
          ????????????????????e1.printStackTrace();
          ????????????????}
          ?catch?(ServiceException?e1)?{
          ????????????????????
          //?TODO?Auto-generated?catch?block
          ????????????????????e1.printStackTrace();
          ????????????????}

          ????????????}

          ????????}
          );
          ????????
          ????????getContentPane().add(
          new?JLabel("Please?ISDN?number"));
          ????????getContentPane().add(bookISDNBox);
          ????????getContentPane().add(resultLabel);
          ????????getContentPane().add(serviceButton);
          ????}

          ????
          ????
          public?static?void?main(String?args[]){
          ????????MyBookClient?client?
          =?new?MyBookClient("Book?Title?Service");
          ????????client.setDefaultCloseOperation(EXIT_ON_CLOSE);
          ????????client.setVisible(
          true);
          ????}

          }

          評論

          # re: Web Service學(xué)習(xí)日記-11月29日-建立客戶端訪問Web Service  回復(fù)  更多評論   

          2006-11-29 23:21 by zhenghx[匿名]
          今天在圖書館看到你那本書,去借時管理員跟我說那本書不能借 =_=!
          郁悶~~

          # re: Web Service學(xué)習(xí)日記-11月29日-建立客戶端訪問Web Service  回復(fù)  更多評論   

          2006-11-29 23:30 by Zou Ang
          什么叫那本書不能借?我都借著在看了

          # re: Web Service學(xué)習(xí)日記-11月29日-建立客戶端訪問Web Service  回復(fù)  更多評論   

          2006-11-30 23:53 by Tauruser
          哪本書?

          # re: Web Service學(xué)習(xí)日記-11月29日-建立客戶端訪問Web Service  回復(fù)  更多評論   

          2007-01-25 15:51 by 冷面閻羅
          那建一個罪簡單的Web Service ,應(yīng)該如何?
          主站蜘蛛池模板: 宁阳县| 固安县| 佛学| 隆化县| 广河县| 车险| 平定县| 临清市| 公安县| 萍乡市| 永城市| 进贤县| 通化市| 潼关县| 中方县| 四平市| 哈密市| 黄山市| 石嘴山市| 云梦县| 西贡区| 武义县| 纳雍县| 探索| 姜堰市| 衡南县| 贵定县| 和政县| 通州区| 枣庄市| 安龙县| 礼泉县| 台湾省| 和政县| 文水县| 抚宁县| 斗六市| 潼关县| 道孚县| 湖口县| 舒城县|