锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久亚洲综合色一区二区三区,亚洲乱码国产乱码精品精,亚洲国产一级在线观看http://m.tkk7.com/ASONG/category/12438.htmlzh-cnTue, 27 Feb 2007 15:07:54 GMTTue, 27 Feb 2007 15:07:54 GMT60鐢↗AX-RPC寮鍙慦eb鏈嶅姟: Servlet浣滀負Web鏈嶅姟绔偣http://m.tkk7.com/ASONG/articles/54637.html姹澗鏄?/dc:creator>姹澗鏄?/author>Fri, 23 Jun 2006 03:01:00 GMThttp://m.tkk7.com/ASONG/articles/54637.htmlhttp://m.tkk7.com/ASONG/comments/54637.htmlhttp://m.tkk7.com/ASONG/articles/54637.html#Feedback0http://m.tkk7.com/ASONG/comments/commentRss/54637.htmlhttp://m.tkk7.com/ASONG/services/trackbacks/54637.html鍏抽敭璇?/strong>錛?JAX-RPC 聽聽 web鏈嶅姟 聽聽 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽

闃呰鏈枃鍓嶆偍闇瑕佷互涓嬬殑鐭ヨ瘑鍜屽伐鍏鳳細

  • JavaTM Web Services Developer Pack 1.1錛屽茍涓斾細浣跨敤鍒濇浣跨敤錛?
  • 杈藉╁淳瑜傞潯鎭㈣JB瀹瑰櫒鏉ュ紑鍙戙侀儴緗睧JB錛屽茍涓斾簡瑙f庝箞鍦ㄥ鎴風璁塊棶EJB緇勪歡錛?
  • 瀵笰pache axis Web鏈嶅姟寮鍙戝伐鍏鋒湁鍩烘湰鐨勪簡瑙o紱
  • 鍩烘湰鐨凧ava緙栫▼鐭ヨ瘑銆?

濡傛灉浣跨敤JAX-RPC寮鍙慦eb鏈嶅姟錛屾垜浠嚑縐嶉夋嫨錛?/p>

  • Servlet浣滀負Web鏈嶅姟绔偣錛?
  • 鏃犵姸鎬佷細璇滲ean浣滀負Web鏈嶅姟绔偣錛?
  • 鍩轟簬娑堟伅錛堝JMS錛夌殑搴旂敤紼嬪簭浣滀負Web鏈嶅姟绔偣銆?

鏈枃浠ervlet浣滀負Web鏈嶅姟绔偣鐨勬儏鍐墊潵浠嬬粛JAX-RPC Web鏈嶅姟寮鍙戯紝鍏充簬鏈瘒鏂囩珷涓渚嬬殑浠嬬粛璇﹁鏈郴鍒楁枃绔犵涓綃囷細 銆婄敤JAXM寮鍙慦eb鏈嶅姟銆?/a>銆?

鏈枃鐨勫弬鑰冭祫鏂欒 鍙傝冭祫鏂?/a>

鏈枃鐨勫叏閮ㄤ唬鐮佸湪榪欓噷 涓嬭澆

JAX-RPC蹇熷叆闂?/span>

JAX-RPC錛孞ava鈩?API for XMLbased RPC錛岄【鍚嶆濅箟錛屽畠鏄竴縐嶈繙紼嬫柟娉曡皟鐢紙鎴栬呰榪滅▼榪囩▼璋冪敤錛夛紝閭d箞瀹冨拰鍏跺畠鐨勮繙紼嬫柟娉曡皟鐢紙RPC錛?COM錛孋ORBA錛孯MI錛夋湁浠涔堝尯鍒憿錛熸垜浠湅涓鑸殑榪滅▼鏂規硶璋冪敤鐨勭粨鏋勶紝濡傚浘1鎵紺恒?/p>


鍥? 榪滅▼鏂規硶璋冪敤

緇煎悎姣旇緝甯哥敤鐨勮繙紼嬫柟娉曡皟鐢ㄦ妧鏈紝瀹冧滑鏈変互涓嬬殑鍏辨э細

  • 鍦ㄥ鎴風鍜屾湇鍔$鏈夐氱敤緙栫▼鎺ュ彛錛?
  • 鍦ㄥ鎴風鏈塖tub錛屽湪鏈嶅姟绔湁Tie錛堟湁鐨勫彨Skeleton錛夛紱
  • 瀹㈡埛绔拰鏈嶅姟绔湁涓撻棬鐨勫崗璁繘琛屾暟鎹紶杈撱?

瀵逛簬閫氱敤鎺ュ彛鐨勬弿榪幫紝姣斿CORBA鏈塈DL of CORBA錛孞ava RMI鏈塉ava RMI interface in RMI錛屽浜嶺MLbased RPC鏉ヨ錛孖DL灝辨槸WSDL錛圵eb鏈嶅姟鎻忚堪璇█錛夈傞偅涔圶MLbased RPC鏉ヨ錛屼粈涔堟槸榪欎釜緇撴瀯涓殑"浼犺緭鍗忚"錛屽綋鐒舵槸SOAP錛孲OAP娑堟伅閫氳繃浠ヤ紶杈撴枃鏈負鍩虹鐨勫崗璁紙HTTP銆丼MTP銆丗TP錛変負杞戒綋鏉ヤ嬌鐢ㄧ殑錛屼篃灝辨槸璇達紝SOAP娑堟伅鐨勪紶杈撳緩绔嬪湪HTTP銆丼MTP銆丗TP浼犺緭鍗忚涔嬩笂銆?/p>

JAX-RPC鐨勬瀯鏋跺涓嬨?/p>


鍥? JAX-RPC 鐨勬瀯鏋? src=

浠庝笂鍥懼彲浠ョ湅鍑猴紝瀹㈡埛绔皟鐢ㄧ殑鏄疛AX-RPC鏈嶅姟绔偣(Service Endpoint)錛岃繖涓湇鍔$鐐規槸閫氳繃WSDL璇█鎻忚堪鐨勩傚湪榪欎釜浣撶郴緇撴瀯涓紝瀵逛簬瀹㈡埛绔紝鍙互鏄疛S2E銆丣2ME鎴栬匤2EE騫沖彴榪愯鐜錛涘浜庢湇鍔$錛屽彲浠ユ槸J2EE1.3鎴栬匤2EE1.4瀹瑰櫒錛圫ervlet瀹瑰櫒鎴栬匛JB瀹瑰櫒錛夈侫pache axis鏄竴涓緢濂界殑JAX-RPC榪愯鐜瀹炵幇錛屽悓鏃朵篃鎻愪緵浜嗕紭縐鐨勫紑鍙戝伐鍏鳳紝鏈枃灝嗕嬌鐢ㄥ畠榪涜寮鍙戙?/p>

浣跨敤Servlet浣滀負鏈嶅姟绔偣錛屾湰妗堜緥鐨勫熀鏈瀯鏋跺涓嬪浘鎵紺恒?/p>


鍥? 妗堜緥鐨勫熀鏈瀯鏋? src=

瀹㈡埛绔氳繃SOAP娑堟伅鍜孞AX-RPC鏈嶅姟绔氦浜掞紝JAX-RPC鏈嶅姟绔繍琛屽湪Servlet瀹瑰櫒涓紝瀹冮氳繃璋冪敤EJB瀹瑰櫒涓殑EJB緇勪歡鏉ュ鐞嗗叿浣撶殑涓氬姟閫昏緫銆?/p>

浣跨敤JAX-RPC寮鍙慦eb鏈嶅姟錛屽彲浠ユ寜鐓т互涓嬬殑姝ラ榪涜錛?/p>

  1. 鏈嶅姟绔偣瀹氫箟錛?
  2. 鏈嶅姟鎻忚堪錛?
  3. 鏈嶅姟绔偣瀹炵幇錛?
  4. 鏈嶅姟绔偣閮ㄧ講錛?
  5. 鏈嶅姟鍙戝竷鍜屽彂鐜般?

娉ㄦ剰錛氬浜庢湇鍔$殑鍙戝竷鍜屽彂鐜幫紝鐢變簬鏈哄埗姣旇緝澶嶆潅錛屾湰鏂囦笉璁ㄨ錛屽彲鑳戒細鍦ㄦ湰緋誨垪鏂囩珷榪涜涓撻璁ㄨ銆?/p>

寮鍙戝揩閫熷叆闂?/span>

涓涓畬鏁寸殑JAX-RPC寮鍙戝疄渚嬶紝灝嗘寜鐓т笂闈㈢殑5涓楠よ繘琛岋紝浣嗘槸鎴戜滑涔熷彲浠ヤ嬌鐢ㄩ潪甯哥畝鍗曠殑鏂瑰紡鏉ュ彂甯冧竴涓猈eb鏈嶅姟銆傚湪浠嬬粛鎴戜滑鐨勬渚嬪墠錛岃鎴戜滑鐢ㄤ竴鍒嗛挓蹇熷紑鍙戜竴涓猈eb鏈嶅姟銆?/p>

棣栧厛瀹夎濂絁WSDP錛屼綘鍙互浠?http://java.sun.com/webservices涓嬭澆銆?

鎶婃湰妗堜緥婧愪唬鐮佷腑鐨刓src\bookservice.ear\web.war鐩綍鎷瘋礉鍒?JWSDP_HOME%\webapps鐩綍涓嬶紝web.war鏂囦歡閲屽凡緇忓寘鎷簡Apache axis榪愯鐜銆?/p>

鍦?JWSDP_HOME%\classes鐩綍涓嬫柊寤轟竴涓狧elloWorld.java鏂囦歡錛屽畠鐨勪唬鐮佸涓嬶細

渚嬬▼1 鏈綆鍗曠殑Web鏈嶅姟HelloWorld



package com.hellking.webservice;
public class HelloWorld
{
 public String sayHello(String name)
 {
  return "Hello! "+name;
 }
}

緙栬瘧榪欎釜綾伙紝鐒跺悗緙栬緫%JWSDP_HOME%\webapps\WEB-INF\server-config.wsdd鏂囦歡錛屾壘鍒拌錛屽湪鍏跺悗闈㈠姞鍏ヤ互涓嬪唴瀹癸細

鍦ㄦ祻瑙堝櫒渚嬭緭鍏ワ細

http://localhost:8080/web/services/HelloWorld?wsdl

濡傛灉鍑虹幇閮ㄧ講WSDL鎻忚堪鏂囦歡錛岄偅涔堟渶綆鍗曠殑Web鏈嶅姟宸茬粡閮ㄧ講鎴愬姛錛?/p>

涓嬮潰鎴戜滑浣跨敤鏈綆鍗曠殑鏂瑰紡鏉ヨ皟鐢ㄨ繖涓猈eb鏈嶅姟錛屽湪嫻忚鍣ㄩ噷杈撳叆錛?/p>http://localhost:8080/web/services/HelloWorld?wsdl&method=sayHello&name=hellking

閭d箞鍦ㄦ祻瑙堝櫒灝嗕細鏄劇ず浠ヤ笅鍐呭錛?/p>

渚嬬▼2 鍦ㄦ祻瑙堝櫒閲岃皟鐢╓eb鏈嶅姟

Hello! hellking

濡傛灉緇撴灉鏄繖鏍鳳紝閭d箞鏈綆鍗曠殑Web鏈嶅姟宸茬粡閮ㄧ講鎴愬姛錛屽茍涓旀祴璇曚篃閫氳繃浜嗐傛敞鎰?Hello錛乭ellking"鏄皟鐢╓eb鏈嶅姟榪斿洖鐨勭粨鏋滐紝瀹冩槸鎴戜滑鏈熸湜鐨勩備笅闈㈡垜浠潵鐪嬩竴涓畬鏁寸殑Web鏈嶅姟寮鍙戠殑渚嬪瓙銆?/p>

鏈嶅姟绔偣瀹氫箟

鏈嶅姟绔偣瀹氫箟鐨勫伐浣滀富瑕佹槸紜畾"鏈嶅姟瀹氫箟鎺ュ彛"錛圫ervice Definition Interface錛夛紝鏈夋椂涔熷彨Web鏈嶅姟绔偣鎺ュ彛錛圵eb services endpoint interface錛夈傛湇鍔$鐐瑰畾涔夋湁涓や腑鏂規硶鑾峰緱錛?/p>

  • 浣跨敤鏌愪簺宸ュ叿浠嶹SDL鏂囦歡鑾峰緱錛?
  • 鐩存帴浣跨敤Java璇█緙栧啓銆?

Apache axis鎻愪緵浜嗕粠WSDL鏂囦歡涓幏寰梂eb鏈嶅姟绔偣鐨勫伐鍏楓傛偍鍙互榪欐牱浣跨敤錛?/p>


java org.apache.axis.wsdl.WSDL2Java (WSDL-file-URL)

浣跨敤榪欎釜鍛戒護鍓嶅厛璁劇疆濂戒互涓嬬殑鐜鍙橀噺錛屽悗闈㈢殑浠嬬粛涓繕浼氫嬌鐢╝xis宸ュ叿錛屽畠浠篃瑕佽繖鏍瘋緗幆澧冨彉閲忥細



SET AXIS_HOME=
set CLASSPATH=%CLASSPATH%;
%AXIS_HOME%/axis-1_1/lib/axis.jar; 
%AXIS_HOME%/axis-1_1/lib/jaxrpc.jar; 
%AXIS_HOME%/axis-1_1/lib/saaj.jar;
%AXIS_HOME%/axis-1_1/lib/commons-logging.jar;
%AXIS_HOME%/axis-1_1/lib/commons-discovery.jar;
%AXIS_HOME%/axis-1_1/lib/wsdl4j.jar;.

鍏充簬WSDL2Java鐨勬洿璇︾粏鐨勪嬌鐢紝璇峰弬鑰傾pache axis鐨刄ser Guides錛?http://ws.apache.org/axis/錛夈?

鎴戜滑榪欓噷鐩存帴浣跨敤Java緙栧啓鏈嶅姟绔偣鎺ュ彛鐨勬柟娉曘傚湪鏈渚嬩腑錛屽畾涔変簡涓変釜涓氬姟鏂規硶錛屽畠浠垎鍒槸鏌ユ壘鎵鏈夌殑鍥句功銆佹寜涔﹀悕鏌ユ壘鍥句功銆佹寜綾誨埆鏌ユ壘鍥句功銆傞偅涔堝畨鐓ц繖涓変釜涓氬姟鏂規硶錛屽彲浠ュ畾涔夊嚭浠ヤ笅鐨勬湇鍔$鐐規帴鍙o細

渚嬬▼3 鏈嶅姟绔偣瀹氫箟錛圔ookServiceInterface.java錛?/p>


package com.hellking.webservice.servlet;
/**
  *@author hellking
  */
import java.util.Collection;
import com.hellking.webservice.BookVO;
public interface BookServiceInterface
{
   
   /**
    * @return Vector
    */
   public Collection getAllBooks();//鏌ユ壘鎵鏈夌殑鍥句功
   
   /**
    * @param name
    * @return BookVO
    */
   public BookVO getTheBookDetail(String name);//鎸夌収涔﹀悕鏌ユ壘鍥句功
   
   /**
    * @return Collection
    */
   public Collection getBookByCategory(String category);//鎸夌被鍒煡鎵?
}

涓婇潰浠g爜涓殑BookVO鏄竴涓簭鍒楀寲鐨勫璞★紝瀹冩湁浠ヤ笅灞炴э紝姣忎釜灞炴ч兘鎻愪緵浜唃etter鍜宻etter鏂規硶銆?/p>

渚嬬▼4 BookVO鐨勯儴鍒嗕唬鐮?/p>


public class BookVO implements java.io.Serializable
{
   private String name;
   private String publisher;
   private float price;
   private String isbn;
   private String description;
   private String category;
   private Collection authors;   
     
   public void setName(String name)
   {
     this.name=name;
   }
public String getName()
    {
     return this.name;
    }
鈥?
}

緙栬瘧濂借繖涓や釜綾匯?/p>

鏈嶅姟绔偣鎻忚堪

鍙互浣跨敤Java2WSDL浠庝互涓婂畾涔夌殑鏈嶅姟绔偣鎺ュ彛涓幏寰楁湇鍔℃弿榪幫紙WSDL鏂囦歡錛夈備嬌鐢ˋpache axis宸ュ叿錛屽彧瑕佷嬌鐢ㄤ互涓嬪懡浠ゅ嵆鍙細



 java org.apache.axis.wsdl.Java2WSDL -o temp.wsdl 
-l"http://localhost:8080/axis/services/BookServletService"
 -n "urn:BookServletService"
 -p"com.hellking.webservice" "urn:BookServletService"
 com.hellking.webservice.servlet.BookServiceInterface
 

浠ヤ笂鍛戒護鐨勮В閲婏細

-o錛氱敓鎴愮殑WSDL鏂囦歡錛?
-l錛歐eb鏈嶅姟鐨勪綅緗紱
-n錛氳繖涓猈SDL鏂囦歡鐨勫悕瀛楃┖闂達紱
-p錛氬寘鍒板悕瀛楃┖闂寸殑鏄犲皠錛?

鏈鍚庝竴涓弬鏁版槸Web鏈嶅姟绔偣鎺ュ彛銆?/p>

浣跨敤浠ヤ笂鍛戒護鍚庯紝灝嗙敓鎴愪竴涓悕涓簍emp.wsdl Web鏈嶅姟鎻忚堪鏂囥?/p>

鏈嶅姟绔偣瀹炵幇

鏈変簡鏈嶅姟鎻忚堪鏂囦歡錛屽氨鍙互浣跨敤瀹冩潵鐢熸垚JAX-RPC 鐨勬鏋訛紝榪欎釜妗嗘灦浣垮緱鎴戜滑緙栫▼鍙樺緱綆鍗曪紝褰撶劧鎮ㄤ篃鍙互鐩存帴緙栧啓瀹炵幇浠g爜錛岀劧鍚庨儴緗詫紝浣嗘槸閭f牱緙栫▼浼氬彉寰楀洶闅俱?/p>

浣跨敤浠ヤ笅鐨勫懡浠ゅ氨鍙互鐢熸垚榪欎釜妗嗘灦錛?/p>


java org.apache.axis.wsdl.WSDL2Java -o . -d Session -s -S true 
-Nurn:BookServletService com.hellking.webservice.servlet temp.wsdl

浣跨敤榪欎釜鍛戒護鍚庡皢鐢熸垚浠ヤ笅鏂囦歡錛?/p>

BookServiceInterface.java錛氭柊鐨凚ookServiceInterface鎺ュ彛錛屽畠鎵╁睍浜唈ava.rmi.Remote鎺ュ彛錛?/p>

BookServiceInterfaceService.java錛氬鎴風鏈嶅姟鎺ュ彛錛岀敤鏉ヨ幏寰桞ookServiceInterface瀵硅薄鐨勫紩鐢紱

BookServiceInterfaceServiceLocator.java錛氬湪瀹㈡埛绔嬌鐢紝涓昏鐢ㄦ潵鏈嶅姟瀹氫綅錛?/p>

BookServletServiceSoapBindingImpl.java錛氭湇鍔$瀹炵幇綾伙紝瀹冨疄鐜頒簡BookServiceInterface鎺ュ彛錛屾湇鍔$鐨勪笟鍔℃柟娉曞疄鐜頒唬鐮佸氨鍦ㄨ繖閲岀紪鍐欙紱

BookServletServiceSoapBindingSkeleton.java錛氭湇鍔$Skeleton錛?/p>

BookServletServiceSoapBindingStub.java錛氬鎴風Stub錛?/p>

BookVO.java錛氭柊鐨凚ookVO搴忓垪鍖栧璞★紱

deploy.wsdd錛氶儴緗茶繖涓猈eb鏈嶅姟鐨勮剼鏈紱

undeploy.wsdd錛氬嵏杞借繖涓猈eb鏈嶅姟鐨勮剼鏈?/p>

鏈嶅姟绔偣瀹炵幇綾葷殑鍩烘湰妗嗘灦宸茬粡鐢熸垚鍑烘潵浜嗭紝鎴戜滑鐨勪換鍔″氨鏄線閲岄潰澧炲姞鍏蜂綋鐨勪笟鍔″唴瀹廣備笅闈㈡垜浠潵鐪嬪叿浣撶殑鏈嶅姟绔偣鐨勫疄鐜般傚渚嬬▼3鎵紺恒?/p>

渚嬬▼5 鏈嶅姟绔偣瀹炵幇綾?/p>


package com.hellking.webservice.servlet;
import java.util.*;
import javax.naming.*;
import com.hellking.webservice.ejb.*;

public class BookServletServiceSoapBindingImpl
 implements com.hellking.webservice.servlet.BookServiceInterface{
   InitialContext init=null;
 BookServiceFacadeHome facadeHome;
 
    public BookServletServiceSoapBindingImpl()
    {
     try
     {
      init=new InitialContext();
     }
     catch(Exception e)
     {
     }
    } 
       
   //涓氬姟鏂規硶錛屾煡鎵炬墍鏈夌殑鍥句功
 public java.lang.Object[] getAllBooks() throws java.rmi.RemoteException {
             System.out.println("getAllBooks");

        try
        {
         Object objref = init.lookup("ejb/bookfacade");  
         facadeHome = (BookServiceFacadeHome)javax.rmi.PortableRemoteObject.narrow(
objref, BookServiceFacadeHome.class); 
      Collection result=facadeHome.create().getAllBook(); 
      System.out.println(result.size());
              Object[] ret=new Object[result.size()];
       Iterator it=result.iterator();
      int i=0;
      while(it.hasNext())
      {
       ret[i++]=it.next();
      } 
  // System.out.println(((BookVO)ret[0]).getName());
        return ret;   
  }
  catch(Exception e)
  {
   e.printStackTrace();
   return null;
  }  
    }
    //涓氬姟鏂規硶錛屾寜涔﹀悕鏌ユ壘鍥句功
    public com.hellking.webservice.BookVO getTheBookDetail(java.lang.String in0)
 throws java.rmi.RemoteException {
         com.hellking.webservice.BookVO ret=null;
        try
        {
         Object objref = init.lookup("ejb/bookfacade");  
         facadeHome = (BookServiceFacadeHome)javax.rmi.PortableRemoteObject.narrow(
objref, BookServiceFacadeHome.class); 
      Collection result=facadeHome.create().getBookDetail(in0);
      Iterator it=result.iterator();
      while(it.hasNext())
      {
       ret=( com.hellking.webservice.BookVO)it.next();
      } 

   }   
  catch(Exception e)
  {
  }  
  return ret;
    }
//涓氬姟鏂規硶錛屾寜綾誨埆鏌ユ壘鍥句功
    public java.lang.Object[] getBookByCategory(java.lang.String in0)
 throws java.rmi.RemoteException {
         try
        {
         Object objref = init.lookup("ejb/bookfacade");  
         facadeHome = (BookServiceFacadeHome)javax.rmi.PortableRemoteObject.narrow(
objref, BookServiceFacadeHome.class); 
      System.out.println(in0);
      Collection result=facadeHome.create().findByCategory(in0); 
      Object[] ret=new Object[result.size()];
      Iterator it=result.iterator();
      int i=0;
      while(it.hasNext())
      {
       ret[i++]=it.next();
       System.out.println(i);
      } 
   return ret;   
  }
  catch(Exception e)
  {
   e.printStackTrace();
   return null;
  }  
 }
}

鍙互鐪嬪嚭錛屾湇鍔$鐐圭殑涓昏浠誨姟鏄皟鐢‥JB緇勪歡鏉ュ畬鎴愪笟鍔¢昏緫鐨勩?/p>

闇瑕佸悜璇昏呰鏄庣殑鏄紝涓轟簡鍜屾湰緋誨垪絎竴綃囨枃绔犱腑鐨勫鎴風妗嗘灦鍏煎錛堝鎴風浣跨敤鐨勫煎璞℃槸com.hellking.webservice.BookVO錛岃岃繖閲岀敱WSDL2Java鐢熸垚鐨勫煎璞℃槸com.hellking.webservice.servlet.BookVO錛夈傛垜浠渶瑕佸仛浠ヤ笅鐨勬敼鍔細

鎶婄敓鎴愮殑榪欎簺浠g爜涓殑com.hellking.webservice.servlet.BookVO鍏ㄩ儴鏀逛負com.hellking.webservice.BookVO錛岀劧鍚庡湪Apache axis鏈嶅姟閰嶇疆鏂囦歡涓敵鏄庤繖涓狟eanMapping錛屽叿浣撶殑澹版槑鏂規硶鍦ㄥ悗闈粙緇嶃?/p>

鎺ヤ笅鏉ョ殑宸ヤ綔鏄紪璇戞湇鍔$鐩稿叧鐨勬枃浠訛細BookServletServiceSoapBindingImpl銆丅ookServletServiceSoapBindingSkeleton銆丅ookServiceInterfaceService銆丅ookServiceInterface銆?/p>

鏈嶅姟绔偣閮ㄧ講

鍚姩鏈嶅姟鍣紝榪欎釜鏈嶅姟鍣ㄥ彲浠ユ槸浠諱綍鑳藉榪愯Apache寮曟搸Web鏈嶅姟鍣紝褰撶劧鏈濂芥槸鍚屾椂鏈塃JB瀹瑰櫒鍜孍JB瀹瑰櫒鐨勬湇鍔″櫒錛屽Webphere 銆乄eblogic銆丣BOSS錛屽鏋滄病鏈塃JB瀹瑰櫒錛岃繕闇瑕佷竴涓澶栫殑EJB瀹瑰櫒錛屽茍涓旈渶瑕佹洿鏀笲ookServletServiceSoapBindingImpl涓幏寰椾笂涓嬫枃錛圛nitialContext錛夌殑鏂規硶錛屽錛?/p>

渚嬬▼6 鑾峰緱涓婁笅鏂囩幆澧?/p>


     Properties p = new Properties();   
     p.put(Context.INITIAL_CONTEXT_FACTORY, "xxxxx");
     p.put(Context.URL_PKG_PREFIXES, "xxxx");
     p.put(Context.PROVIDER_URL, "xxxx");
     init=new javax.naming.InitialContext(p);
     

鍦ㄦ帶鍒跺彴涓紝杞埌deploy.wsdd鐩綍涓嬶紝鎵ц浠ヤ笅鐨勫懡浠ゅ氨鍙互瀹屾垚閮ㄧ講錛?/p>


 java org.apache.axis.client.AdminClient deploy.wsdd
 

鐢變簬鎴戜滑浣跨敤鐨勬槸鑷繁鐨勫簭鍒楀寲Bean瀵硅薄錛屾晠瑕佸湪%Web-Apps%/WEB-INF/ server-config.wsdd鏂囦歡涓仛浠ヤ笅鏇存敼錛?
鎵懼埌


鈥?

鍦ㄤ腑闂村姞鍏ヤ互涓嬪唴瀹癸細

閮ㄧ講鍚庢偍蹇呴』紜繚鍦?Web-Apps%/WEB-INF/classes鐩綍涓嬫湁鏈嶅姟绔浉鍏崇殑綾伙紙BookServletServiceSoapBindingImpl銆丅ookServletServiceSoapBindingSkeleton絳夛級銆?/p>

鍦ㄦ祻瑙堝櫒閲岃緭鍏ワ紙榪欎釜鍦板潃鎮ㄩ渶瑕佹牴鎹叿浣撴儏鍐墊洿鏀癸級錛?/p>

http://localhost:8080/axis/services/BookServletService?wsdl

鏉ラ獙璇乄eb鏈嶅姟鏄惁宸茬粡閮ㄧ講鎴愬姛錛屽鏋滈儴緗蹭笉鎴愬姛錛屾偍鍙互鍏堝皾璇曢噸鏂板惎鍔ㄦ湇鍔″櫒銆?/p>

瀹㈡埛绔?/span>

濡傛灉鏈嶅姟绔凡緇忔垚鍔熼儴緗詫紝涓嬩竴姝ョ殑宸ヤ綔灝辨槸緙栧啓瀹㈡埛绔▼搴忎簡銆傜敱浜庝嬌鐢╓SDL2Java宸茬粡鐢熸垚浜嗗鎴風鐨勬鏋訛紝鎵浠ユ垜浠殑浠誨姟灝嗙浉瀵圭畝鍗曚簡銆?/p>

瀹㈡埛绔紪紼嬩換鍔′富瑕佹湁浠ヤ笅鍑犱釜錛?/p>

  • 鍦˙ookServletServiceSoapBindingStub閲屾敞鍐孊eanMapping錛?
  • 緙栧啓瀹㈡埛绔笟鍔′唬琛紝榪欓噷浣跨敤浜咼AXRPCDelegate錛?
  • 鏇存敼浠ュ墠鐨凚ookGUI鐨勯儴鍒嗙▼搴忋?

鍦˙ookServletServiceSoapBindingStub閲屾敞鍐孊eanMapping

鐢變簬鍦⊿OAP娑堟伅涓嬌鐢ㄤ簡搴忓垪鍖栫殑BookVO瀵硅薄錛屾晠鍦˙ookServletServiceSoapBindingStub涓榪涜BeanMapping娉ㄥ唽銆傚叿浣撴柟娉曪細

鎵懼埌BookServletServiceSoapBindingStub涓殑getAllBooks錛実etTheBookDetail錛実etBookByCategory鏂規硶錛屽湪姣忎釜鏂規硶涓殑



 java.lang.Object _resp = _call.invoke(new java.lang.Object[] {in0});
 

鍓嶅姞鍏ヤ互涓嬩唬鐮侊細

渚嬬▼7 鍦˙ookServletServiceSoapBindingStub娉ㄥ唽BeanMapping



 QName    qn      = new QName( "BookServletService", "BookServletService" );
 _call.registerTypeMapping(com.hellking.webservice.BookVO.class, qn,                
new org.apache.axis.encoding.ser.BeanSerializerFactory(com.hellking.webservice.BookVO.class, qn),        
 new org.apache.axis.encoding.ser.BeanDeserializerFactory(com.hellking.webservice.BookVO.class, qn));
 

娉ㄦ剰榪欓噷鐨凲name瑕佸拰server-config.wsdd涓弿榪扮殑鍚嶇О絀洪棿涓鑷淬傚湪涓璼erver-config.wsdd錛屾垜浠嬌鐢ㄤ簡浠ヤ笅鐨勬槧灝勶細

鍦ㄧ紪鍐欎笟鍔′唬琛ㄧ▼搴忓墠錛屾垜浠厛鏉ュWeb鏈嶅姟鍋氫竴涓皟鐢ㄦ祴璇曘傚湪嫻嬭瘯鍓嶆偍蹇呴』淇濊瘉鏁版嵁搴撻噷宸茬粡鏈夊浘涔︿俊鎭傚鏋淓JB鍜學eb Application閮介儴緗插ソ錛屾偍鍙互閫氳繃浠ヤ笅欏甸潰鏉ュ線鏁版嵁搴撻噷澧炲姞鏁版嵁錛?/p>

http://localhost:8080/axis/insert_data.jsp

嫻嬭瘯浠g爜濡備笅錛?/p>

渚嬬▼8 嫻嬭瘯Web鏈嶅姟



package com.hellking.webservice.servlet;
import java.net.URL;

import javax.xml.namespace.QName;
import javax.xml.rpc.Service;
import javax.xml.rpc.ServiceFactory;
import com.hellking.webservice.ejb.*;

public class Client { 
    public static void main(String[] args) {      
        try {
            
            BookServiceInterfaceServiceLocator locator=new BookServiceInterfaceServiceLocator();
            
        BookServiceInterface myProxy=locator.getBookServletService();
            Object[] c=myProxy.getAllBooks();
            com.hellking.webservice.BookVO 
book=(com.hellking.webservice.BookVO)c[0];
            System.out.println(book.getName());            
        } catch (Exception ex) {
            ex.printStackTrace();
        } 
    } 
}

      

濡傛灉鍦ㄦ帶鍒跺彴閲屾墦鍗板嚭鏌愪釜鍥句功鐨勫悕瀛楋紝閭d箞灝遍獙璇佷簡瀹㈡埛绔拰鏈嶅姟绔殑閮ㄧ講鏄紜殑銆傚湪榪涜涓嬮潰鐨勫伐浣滃墠錛岃紜繚榪欎釜嫻嬭瘯鏄垚鍔熺殑銆?/p>

緙栧啓瀹㈡埛绔笟鍔′唬琛?/span>

瀵逛簬瀹㈡埛绔▼搴忔潵璇達紝涓氬姟浠h〃鐩存帴鍜學eb鏈嶅姟鎵撲氦閬擄紝鑾峰緱Web鏈嶅姟榪斿洖鐨勬暟鎹紝騫跺仛瀵瑰簲鐨勫鐞嗭紝鐒跺悗鎶婃暟鎹繑鍥炵粰GUI紼嬪簭錛孏UI紼嬪簭鍙礋璐f暟鎹樉紺恒備笟鍔′唬琛ㄧ殑浠g爜濡備笅錛?/p>

渚嬬▼9 JAXRPCDelegate涓氬姟浠h〃



package com.hellking.webservice.servlet;

import java.net.URL;
import javax.xml.namespace.QName;
import javax.xml.rpc.Service;
import javax.xml.rpc.ServiceFactory;
import com.hellking.webservice.ejb.*;
import java.util.*;

public class JAXRPCDelegate implements com.hellking.webservice.BookBusiness
{
  BookServiceInterfaceServiceLocator locator;
     com.hellking.webservice.servlet.BookServiceInterface bookService;
     
     public JAXRPCDelegate()
  {
   try
   {
    locator=new BookServiceInterfaceServiceLocator();
          bookService=locator.getBookServletService();
         }
         catch(Exception e)
         {
         }
    }
  
 public Collection getBookByCategory(String category)
 {
     System.out.println("by_category");
  Collection ret=new ArrayList();
  try
  {   
            Object[] books=bookService.getBookByCategory(category);
            System.out.println(category);
            int i=0;
            
            while(true)
            {
             ret.add(books[i++]);
             System.out.println(i);
            }   
  }
  catch(Exception e)
  {
  }
  return ret; 
 }
 
 public Collection getAllBooks()
 {
  Collection ret=new ArrayList();
  try
  {   

            Object[] books=bookService.getAllBooks();
            int i=0;
            
            while(true)
            {
             ret.add(books[i++]);
            } 
  }
  catch(Exception e)
  {
  }
  return ret;
 }
 
 public com.hellking.webservice.BookVO getTheBookDetail(String name)
 {
  System.out.println("bookdetail");
  com.hellking.webservice.BookVO ret=new com.hellking.webservice.BookVO();
  try
  {   
           ret=bookService.getTheBookDetail(name);
  }
  catch(Exception e)
  {
  }
  return ret;  
 } 
}

鍜岀涓綃囨枃绔犱粙緇嶇殑JAXMDelegate涓鏍鳳紝JAXRPCDelegate 鍚屾牱瀹炵幇浜咮ookBusiness鎺ュ彛錛孊ookBusiness鎺ュ彛鏄互鍓嶈璁$殑鎺ュ彛錛屾垜浠湪榪欓噷榪涜閲嶇敤錛岃繖鏍風殑濂藉鏄疊ookClientGUI紼嬪簭鍑犲彧瑕佸仛寰堝皯鐨勬洿鏀瑰氨鍙互榪愯銆?/p>

鏇存敼浠ュ墠鐨凚ookClientGUI鐨勯儴鍒嗙▼搴?/span>

鍦˙ookGUI鏋勯犳柟娉曢噷澧炲姞浠ヤ笅鍐呭錛?/p>

渚嬬▼10 鏇存敼BookGUI紼嬪簭



public BookClientGUI()
{
 business=new JAXRPCDelegate();
鈥?
}

濂戒簡錛岀粡榪囦互涓婄殑濂嬫垬錛岃鎴戜滑鏉ョ湅榪愯鐨勭粨鏋滃惂銆?/p>

java com.hellking.webservice.BookClientGUI

榪愯緇撴灉濡傚浘4鎵紺恒?/p>


鍥? 榪愯緇撴灉.

鎬葷粨

閫氳繃浠ヤ笂鐨勪粙緇嶏紝鐩鎬俊璇昏呭JAX-RPC Web鏈嶅姟寮鍙戝凡緇忔湁涓涓瘮杈冩繁鍒葷殑璁よ瘑銆傛葷粨涓涓嬶紝浣跨敤JAX-RPC寮鍙慦eb鏈嶅姟鏃訛紝涓昏鏈変互涓嬬殑宸ヤ綔錛?/p>

  • 鏈嶅姟绔偣瀹氫箟錛?
  • 鏈嶅姟鎻忚堪錛?
  • 鏈嶅姟绔偣瀹炵幇錛?
  • 鏈嶅姟绔偣閮ㄧ講錛?

涓嬩竴姝?/span>

鏈枃宸茬粡浠嬬粛浜嗘妸Servlet浣滀負Web鏈嶅姟绔偣寮鍙慦eb鏈嶅姟鐨勫叏榪囩▼錛屼笅涓綃囧皢鏄妸EJB浣滀負Web鏈嶅姟绔偣鏉ュ紑鍙戙?/p>

鍙傝冭祫鏂?

Apache axis User's Guides錛?http://ws.apache.org/axis/ Sun jwsdp-1_1-tutorial錛?http://java.sun.com/webservices/downloads/webservicestutorial.htmlhttp://www.ibm.com/developerworks/cn/xml/index.htmlXML & Web services涓撳尯 JAX-RPC API http://java.sun.com/webservices Jwdp1.1 http://java.sun.com/webservices 涓嬭澆 鏍蜂緥浠g爜

鍏充簬浣滆?/span>
闄堜簹寮猴細鍖椾含鍗庡洯澶╀竴縐戞妧鏈夐檺鍏徃楂樼駭杞歡宸ョ▼甯堬紝鎿呴暱J2EE鎶鏈紝鏇懼弬涓庡涓狫2EE欏圭洰鐨勮璁″拰寮鍙戯紝瀵筗eb鏈嶅姟鏈夊緢澶х殑鍏磋叮騫朵笖鏈変竴瀹氱殑欏圭洰緇忛獙銆傜儹鐖卞涔狅紝鍠滄鏂版妧鏈傚嵆灝嗙敱鐢靛瓙宸ヤ笟鍑虹増紺懼嚭鐗堢殑銆奐2EE浼佷笟搴旂敤寮鍙戙嬫鍦ㄦ渶緇堝畾紼塊樁孌碉紝鐩墠姝d粠浜婮2EE鏂歸潰鐨勫紑鍙戝拰J2EE Web鏈嶅姟鏂歸潰鐨勫浘涔﹀啓浣溿傛偍鍙互閫氳繃 cyqcims@mail.tsinghua.edu.cn鍜屼粬鑱旂郴銆?/td>


]]>
主站蜘蛛池模板: 亚洲一区二区三区在线观看精品中文| 日韩成人免费aa在线看| 亚洲国产AV无码专区亚洲AV| 亚洲精品偷拍视频免费观看| 亚洲精品NV久久久久久久久久| 国产精品亚洲а∨天堂2021| 免费不卡中文字幕在线| 国产亚洲Av综合人人澡精品| 免费乱理伦在线播放| kk4kk免费视频毛片| 亚洲大尺度无码专区尤物| 久久国产乱子伦精品免费看| 666精品国产精品亚洲 | 亚洲高清不卡视频| 在线成人爽a毛片免费软件| 亚洲日韩乱码中文无码蜜桃| 曰批视频免费30分钟成人| 亚洲av无码一区二区三区四区| 免费在线观看毛片| a级毛片毛片免费观看永久| 亚洲综合久久综合激情久久| 国产又黄又爽又猛免费app| 亚洲暴爽av人人爽日日碰| 亚洲国产综合精品中文字幕| 永久免费av无码入口国语片| 亚洲成a人片在线看| 日韩一级视频免费观看| 精品人妻系列无码人妻免费视频| 亚洲天天在线日亚洲洲精| 最近中文字幕mv免费高清视频7| 美女黄网站人色视频免费| 亚洲激情在线视频| 在线免费观看中文字幕| 亚欧洲精品在线视频免费观看| 亚洲高清在线播放| 国产成人精品免费视频大全五级| 久久精品电影免费动漫| 亚洲国产欧美日韩精品一区二区三区| 亚洲一区二区三区偷拍女厕| 国产卡一卡二卡三免费入口| 国产免费久久久久久无码|