锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
鍦╝xis涓湁4涓湇鍔$被鍨?br />
RPC鏈嶅姟閲囩敤soap rpc鐨勬爣鍑嗭紝and also the SOAP "section 5" encoding.
Document 鏈嶅姟娌℃湁閲囩敤浠諱綍緙栫爜錛堟墍浠ヤ綘鍦ㄧ粍瑁呮椂涓嶄細鐪嬪埌澶嶆潅瀵硅薄鐨勫簭鍒楀寲浠ュ強soap-style鏁扮粍錛夛紝浣嗘槸浠嶇劧浣滀簡xml鍜宩ava瀵硅薄鐨勪簰鏄犲皠銆?br />
Wrapped鏈嶅姟鍜孌ocument鏈嶅姟綾諱技
Message 鏈嶅姟鎺ュ彈鍜岃繑鍥瀞oap Envelope涓殑浠繪剰鐨剎ml鑰屼笉闇瑕乵apping/data寰楁瀹氥傚鏋滀綘鎯沖鐞嗘潵鑷閮ㄧ殑鍘熷鐨剎ml錛屽彲浠ラ噰鐢∕essage 鏈嶅姟銆?/p>
RPC鏈嶅姟
榪欎釜鏈嶅姟鏄痑xis榛樿鐨勬湇鍔°傛垜浠湪鍓嶉潰鐨勪緥瀛愪腑鍐欑殑灝辨槸rpc鏈嶅姟銆?lt;service ... provider="java:RPC"> 銆俽pc鏈嶅姟閬典粠soap rpc瑙勮寖鍜岀紪鐮佽鍒欙紝鎰忓懗鐫鏉ヨ嚜rpc鏈嶅姟鐨剎ml灝嗙被浼間笂闈緥瀛愪腑鐨?#8220;echoString”--姣忎釜rpc璋冪敤琚ā鍧楀寲涓轟竴涓閮ㄥ厓绱狅紝鍖歸厤鎿嶄綔鍚嶇О錛屽茍鍖呭惈浜嗗緢澶氬唴閮ㄥ厓绱狅紝姣忎竴涓兘鏄搷浣滅殑涓涓弬鏁般俛xis灝嗘妸榪欎簺xml杞寲涓簀ava瀵硅薄錛岄厤閫佺粰浣犲緱鏈嶅姟錛屽茍灝嗗簭鍒楀寲鏉ヨ嚜鏈嶅姟鐨刯ava瀵硅薄涓簒ml.鍥犱負rpc鏈嶅姟榛樿閲囩敤soap section 5瑙勫垯錛屽璞″皢浼氶氳繃"multi-ref" 搴忓垪鍖栨潵緙栫爜銆?br />
Document / Wrapped 鏈嶅姟
榪?涓湇鍔″緢綾諱技錛岄兘涓嶉渶瑕佺敤soap緙栫爜鏉ュ鐞嗘暟鎹備粬灝辨槸涓涓櫘閫氱殑xml鏍煎紡銆傛棤璁哄摢縐嶆儏鍐碉紝axis榪樻槸瀵逛粬浠仛浜唜ml鍒癹ava寰楁瀹氾紝鎵浠ヤ綘鏈緇堝鐞嗙殑榪樻槸java瀵硅薄錛岃屼笉鏄痻ml緇撴瀯鐨勫瓧絎︿覆銆?br />
涓嬮潰鐨勪緥瀛愭潵璇存槑浠栦滑2涓箣闂寸殑鍖哄埆銆?br />
<soap:Envelope xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<soap:Body>
<myNS:PurchaseOrder xmlns:myNS="http://commerce.com/PO">
<item>SK001</item>
<quantity>1</quantity>
<description>Sushi Knife</description>
</myNS:PurchaseOrder>
</soap:Body>
</soap:Envelope>
鐩稿叧鐨凱urchaseOrder綾誨瀷瀹氫箟濡備笅錛?/p>
<schema targetNamespace="http://commerce.com/PO">
<complexType name="POType">
<sequence>
<element name="item" type="xsd:string"/>
<element name="quantity" type="xsd:int"/>
<element name="description" type="xsd:string"/>
</sequence>
</complexType>
<element name="PurchaseOrder" type="POType"/>
</schema>
瀵逛簬涓涓猟ocument鏈嶅姟鏉ヨ錛屼粬灝嗗搴斿埌榪欐牱鐨勬柟娉?br /> public void method(PurchaseOrder po)
鎹㈠彞璇濊錛屾暣涓狿urchaseOrder鍏冪礌灝嗚澶勭悊涓轟竴涓崟涓鐨勫璞★紝鍖呭惈3涓睘鎬с?br />
鑰屽浜巜rapped鏈嶅姟鏉ヨ錛屼粬瀵瑰簲浜庝笅闈㈢殑鏂規硶
public void purchaseOrder(String item, int quantity, String description)
娉ㄦ剰鍒幫紝鍦╳rapped涓紝PurchaseOrder鍏冪礌琚槧灝勪負浠h〃浜嗕竴涓柟娉曘備粬鐨勫弬鏁板氨鏄粬鐨勯偅浜涘厓绱犮?br />
浠栦滑鍦╳sdd寰椾嬌鐢ㄥ涓?br />
<service ... style="document"> for document style
<service ... style="wrapped"> for wrapped style
Message 鏈嶅姟
褰撲綘闇瑕佸鐞嗙函xml鑰屼笉鏄痡ava瀵硅薄鏃訛紝浣犲皢浼氱敤鍒拌繖縐嶆湇鍔°?br />
message鏈嶅姟鐨勬柟娉曟湁4涓鍚?br />
public Element [] method(Element [] bodies);
public SOAPBodyElement [] method (SOAPBodyElement [] bodies);
public Document method(Document body);
public void method(SOAPEnvelope req, SOAPEnvelope resp);
<!-- define the service, using the log handler we just defined -->
<service name="LogTestService" provider="java:RPC">
<requestFlow>
<handler type="track"/>
</requestFlow>
<parameter name="className" value="samples.userguide.example4.Service"/>
<parameter name="allowedMethods" value="*"/>
</service>
</deployment>
榪欎釜渚嬪瓙浼氬湪瀹㈡埛绔帀鐢↙ogTestService鐨勬椂鍊欙紝鍏堣皟鐢╯amples.userguide.example4.LogHandler浣滆褰曟搷浣?br />
榪滅▼綆$悊
榛樿鐘舵佷笅錛宎xis鍙厑璁稿湪axis閮ㄧ講鐨勬満鍣ㄤ笂浣跨敤綆$悊璇鋒眰錛屽鏋滃笇鏈涘湪鍏朵粬鐨勬満鍣ㄤ笂榪涜綆$悊鎿嶄綔鍙互鍙傜収涓嬮潰鐨勪緥瀛?/p>
<service name="AdminService" provider="java:MSG">
<parameter name="className" value="org.apache.axis.util.Admin"/>
<parameter name="allowedMethods" value="*"/>
<parameter name="enableRemoteAdmin" value="true"/>
</service>
娉ㄦ剰錛岃繖鏍烽厤緗渶瑕佷綔蹇呰鐨勫畨鍏ㄩ厤緗?/p>
word.CommandBars("File").Controls(6).Enabled= false;
word.CommandBars("File").Controls(6).visible= false;
word.visible = true;
// word.activate();
try{
//鎵撳紑鏂囦歡
doc=word.Documents.Open(" //鐥曡抗淇濈暀
word.ActiveDocument.TrackRevisions =true;
//鍒囨崲鎴恮eb瑙嗗浘
word.ActiveDocument.ActiveWindow.View.Type=3
}catch(e){
alert(e.message);
};
}
function myfinalize(){
//鏂囨。淇濆瓨
doc.save();
//鏂囨。鍏抽棴
doc.close();
//鎶婂睆钄界殑鍔熻兘鎵撳紑
word.CommandBars("File").Controls(5).Enabled= true;
word.CommandBars("File").Controls(5).visible= true;
//word閫鍑?br> word.quit();
}
//鍙傝冩枃妗?br> http://bbs.hidotnet.com/712/ShowPost.aspx
window寰梤esizeto鍜宺esizeby鏂規硶瀵規ā寮忕獥鍙f棤鏁堛?/p>
聽聽聽 Java寮鍙戣呭勾閴翠竴涔︾殑鍦ㄧ嚎鐗堟湰. 瑕佹兂蹇熸煡鍒版煇縐岼ava鎶宸х殑鐢ㄦ硶鍙婄ず渚嬩唬鐮? 榪欐槸涓涓笉閿欑殑鍘誨.
聽聽聽 O'Reilly鐨凧ava緗戠珯. 姣忓懆閮芥湁鏂版枃绔?/p>
聽聽聽 瀹樻柟鐨凧ava寮鍙戣呯綉绔?- 姣忓懆閮芥湁鏂版枃绔犲彂琛?/p>
聽聽聽 鐢盙amelan.com 緇存姢鐨凧ava鎶鏈枃绔犵綉绔?/p>
聽聽聽 Sun鍏徃緇存姢鐨勪竴涓狫ava紺懼尯緗戠珯
聽聽聽 Cnet鐨凚uilder.com緗戠珯 - 鎵鏈夌殑鎶鏈枃绔? 浠ava涓轟富.
http://www.ibm.com/developerworks/java
聽聽聽 IBM鐨凞eveloperworks鎶鏈綉绔? 榪欐槸鍏朵腑鐨凧ava鎶鏈富欏?/p>
聽聽聽 鏈鏃╃殑涓涓狫ava绔欑偣. 姣忓懆鏇存柊Java鎶鏈枃绔?/p>
聽聽聽 DevX緇存姢鐨勪竴涓狫ava鎶鏈枃绔犵綉绔?/p>
http://www.fawcette.com/javapro
聽聽聽 JavaPro鍦ㄧ嚎鏉傚織緗戠珯.
聽聽聽 Java Developers Journal鐨勫湪綰挎潅蹇楃綉绔?
聽聽聽 浣嶄簬Java.net鐨勪竴涓狫ava妗岄潰鎶鏈ぞ鍖虹綉绔?
聽聽聽 榪欐槸涓涓璁烘墍鏈塉ava鏈嶅姟鍣ㄧ鎶鏈殑緗戠珯.
聽聽聽 鎻愪緵Java璇勮鏈嶅姟. 鍖呮嫭鍚勭framework鍜屽簲鐢ㄧ▼搴?/p>
聽聽聽 涓涓潪甯告鐨勯噰鐢≦&A褰㈠紡鐨凧ava鎶鏈祫婧愮ぞ鍖?
聽聽聽聽 涓涓鍧涳紝寰楀埌Java闂絳旀鐨勫湴鏂癸紝鍒濆鑰呯殑濂藉幓澶勩?/p>
http://www.ibiblio.org/javafaq/javafaq.html
聽聽聽 comp.lang.java鐨凢AQ绔欑偣 - 鏀墮泦浜嗘潵鑷猚omp.lang.java鏂伴椈緇勭殑闂鍜岀瓟妗堢殑鍒嗙被鐩綍.
http://java.sun.com/docs/books/tutorial/
聽聽聽 鏉ヨ嚜SUN鍏徃鐨勫畼鏂笿ava鎸囧崡 - 瀵逛簬浜嗚В鍑犱箮鎵鏈夌殑java鎶鏈壒鎬ч潪甯告湁甯姪.
聽聽聽 浜掕仈緗戜笂鏈媧昏穬鐨勪竴涓狫ava Blog緗戠珯.
http://java.about.com/
杞嚜51cto
璁╂垜浠潵鍏蟲敞涓嬮潰鐨勮瘽錛?br> “鐢?JTA 鐣屽畾浜嬪姟錛岄偅涔堝氨闇瑕佹湁涓涓疄鐜?javax.sql.XADataSource 銆?javax.sql.XAConnection 鍜?javax.sql.XAResource 鎺ュ彛鐨?JDBC 椹卞姩紼嬪簭銆備竴涓疄鐜頒簡榪欎簺鎺ュ彛鐨勯┍鍔ㄧ▼搴忓皢鍙互鍙備笌 JTA 浜嬪姟銆備竴涓?XADataSource 瀵硅薄灝辨槸涓涓?XAConnection 瀵硅薄鐨勫伐鍘傘?XAConnection s 鏄弬涓?JTA 浜嬪姟鐨?JDBC 榪炴帴銆?#8221;
瑕佷嬌鐢↗TA浜嬪姟錛屽繀欏諱嬌鐢╔ADataSource鏉ヤ駭鐢熸暟鎹簱榪炴帴錛屼駭鐢熺殑榪炴帴涓轟竴涓猉A榪炴帴銆?br> XA榪炴帴錛坖avax.sql.XAConnection錛夊拰闈瀀A錛坖ava.sql.Connection錛夎繛鎺ョ殑鍖哄埆鍦ㄤ簬錛歑A鍙互鍙備笌JTA鐨勪簨鍔★紝鑰屼笖涓嶆敮鎸佽嚜鍔ㄦ彁浜ゃ?br> Note:
Oracle, Sybase, DB2, SQL Server絳夊ぇ鍨嬫暟鎹簱鎵嶆敮鎸乆A, 鏀寔鍒嗗竷浜嬪姟銆?
My SQL 榪炴湰鍦伴兘鏀寔涓嶅ソ錛屾洿鍒鍒嗗竷浜嬪姟浜嗐?br>JTA鏂瑰紡鐨勫疄鐜拌繃紼?/font>錛?br> 鐢╔ADataSource浜х敓鐨刋AConnection瀹冩墿灞曚簡涓涓猤etXAResource()鏂規硶,浜嬪姟閫氳繃榪欎釜鏂規硶鎶婂畠鍔犲叆鍒頒簨鍔″鍣ㄤ腑榪涜綆$悊.瀵逛簬璋冪敤鑰呮潵璇?鏍規湰鐪嬩笉鍒頒簨鍔℃槸濡傛灉綆$悊鐨?浣犲彧瑕佸0鏄庡紑濮嬩簨鍔?鍛婅瘔瀹瑰櫒鎴戜笅闈㈢殑鎿嶄綔瑕佹眰浜嬪姟鍙備笌浜?鏈鍚庡憡璇変簨鍔¤鍒拌繖鍎垮彲浠ユ彁浜ゆ垨鍥炴粴浜?鍒殑閮芥槸榛戠鎿嶄綔銆?br> 鍦ㄤ嬌鐢↗TA涔嬪墠錛屼綘蹇呴』棣栧厛瀹炵幇涓涓猉id綾葷敤鏉ユ爣璇嗕簨鍔★紙鍦ㄦ櫘閫氭儏鍐典笅榪欏皢鐢變簨鍔$鐞嗙▼搴忔潵澶勭悊錛夈俋id鍖呭惈涓変釜鍏冪礌錛歠ormatID銆乬trid錛堝叏灞浜嬪姟鏍囪瘑絎︼級鍜宐qual錛堝垎鏀慨楗拌瘝鏍囪瘑絎︼級銆?br> 涓嬮潰鐨勪緥瀛愯鏄嶺id鐨勫疄鐜幫細
import javax.transaction.xa.*;
public class MyXid implements Xid
{
銆protected int formatId;
銆protected byte gtrid[];
銆protected byte bqual[];
銆public MyXid()
銆{
銆}
銆public MyXid(int formatId, byte gtrid[], byte bqual[])
銆{
銆銆this.formatId = formatId;
銆銆this.gtrid = gtrid;
銆銆this.bqual = bqual;
銆}
銆public int getFormatId()
銆{
銆銆return formatId;
銆}
銆public byte[] getBranchQualifier()
銆{
銆銆return bqual;
銆}
銆public byte[] getGlobalTransactionId()
銆{
銆銆return gtrid;
銆}
}
鍏舵錛屼綘闇瑕佸垱寤轟竴涓綘瑕佷嬌鐢ㄧ殑鏁版嵁搴撶殑鏁版嵁婧愶細
public DataSource getDataSource()
銆throws SQLException
銆{
銆銆SQLServerDataSource xaDS = new
銆銆com.merant.datadirect.jdbcx.sqlserver.SQLServerDataSource();
銆銆xaDS.setDataSourceName("SQLServer");
銆銆xaDS.setServerName("server");
銆銆xaDS.setPortNumber(1433);
銆銆xaDS.setSelectMethod("cursor");
銆銆return xaDS;
}
銆銆渚??榪欎釜渚嬪瓙鏄敤“涓ゆ鎻愪氦鍗忚”鏉ユ彁浜や竴涓簨鍔″垎鏀細
XADataSource xaDS;
XAConnection xaCon;
XAResource xaRes;
Xid xid;
Connection con;
Statement stmt;
int ret;
xaDS = getDataSource();
xaCon = xaDS.getXAConnection("jdbc_user", "jdbc_password");
xaRes = xaCon.getXAResource();
con = xaCon.getConnection();
stmt = con.createStatement();
xid = new MyXid(100, new byte[]{0x01}, new byte[]{0x02});
try {
銆銆xaRes.start(xid, XAResource.TMNOFLAGS);
銆銆stmt.executeUpdate("insert into test_table values (100)");
銆銆xaRes.end(xid, XAResource.TMSUCCESS);
銆銆ret = xaRes.prepare(xid);
銆銆if (ret == XAResource.XA_OK) {
銆銆銆銆xaRes.commit(xid, false);
銆銆銆}
}
catch (XAException e) {
銆e.printStackTrace();
}
finally {
銆stmt.close();
銆con.close();
銆xaCon.close();
}
褰撶劧錛屽疄闄呰繃紼嬩腑錛屾垜浠笉闇瑕佸啓榪欎簺浠g爜錛岃繖浜涗唬鐮佹槸JTA鏈緇堢殑瀹炵幇浠g爜銆?br>鍏充簬“涓ゆ鎻愪氦鍗忚”錛屽彲浠ュ弬鐪嬩笅闈㈢殑鏂囩珷錛?br>http://www.jspcn.net/htmlnews/11049371131251752.html
http://www.vermicelli.pasta.cs.uit.no/ipv6/students/andrer/doc/html/node18.html
閫夋嫨鏈濂界殑鏂瑰紡
鐢?JDBC API 榪涗簨鍔$晫瀹氭潵鏋勫緩 DAO 綾葷殑銆傝繖浜?DAO 綾誨彲浠ユ葷粨濡備笅錛?/p>
浜嬪姟鐣屽畾浠g爜宓屽叆鍦?DAO 綾諱腑銆?
DAO 綾諱嬌鐢?JDBC API 榪涜浜嬪姟鐣屽畾銆?
璋冪敤鑰呬笉鑳界晫瀹氫簨鍔°?
浜嬪姟鑼冨洿灞闄愪簬鍗曚釜 JDBC 榪炴帴銆?
JDBC 浜嬪姟騫朵笉鎬繪槸閫傚悎澶嶆潅鐨勪紒涓氬簲鐢ㄧ▼搴忋傚鏋滄偍鐨勪簨鍔¤璺ㄨ秺澶氫釜 DAO 鎴栬呭涓暟鎹簱錛岄偅涔堜笅鍒楀疄鐜扮瓥鐣ヤ篃璁告洿鍚堥傦細
浜嬪姟鐢?JTA 鐣屽畾銆?
浜嬪姟鐣屽畾浠g爜浠?DAO 涓垎紱誨嚭鏉ャ?
璋冪敤鑰呰礋璐g晫瀹氫簨鍔°?
DAO 鍔犲叆涓涓叏灞浜嬪姟銆?
JDBC 鏂瑰紡鐢變簬鍏剁畝鍗曟ц屽叿鏈夊惛寮曞姏錛孞TA銆鏂瑰紡鎻愪緵浜嗘洿澶х殑鐏墊椿鎬с傛偍鎵閫夋嫨鐨勫疄鐜板皢鍙栧喅浜庡簲鐢ㄧ▼搴忕殑鐗瑰畾闇姹傘?br>XADataSource渚嬪瓙錛?br><?xml version="1.0" encoding="UTF-8"?>
<!-- ===================================================================== -->
<!-- -->
<!-- JBoss Server Configuration -->
<!-- Thanks to Horia Muntean <horia@bvb.ro> -->
<!-- ===================================================================== -->
<!-- $Id: db2-xa-ds.xml,v 1.1.2.1 2003/05/30 18:25:57 d_jencks Exp $ -->
<datasources>
<!--
XADatasource for DB2 V8.1 (app driver)
copy $db2_install_dir/java/db2java.zip into $jboss_install_dir/server/default/lib
-->
<xa-datasource>
<jndi-name>DB2XADS</jndi-name>
<xa-datasource-class>COM.ibm.db2.jdbc.DB2XADataSource</xa-datasource-class>
<xa-datasource-property name="DatabaseName">yout_database_name</xa-datasource-property>
<xa-datasource-property name="User">your_user</xa-datasource-property>
<xa-datasource-property name="Password">your_password</xa-datasource-property>
</xa-datasource>
</datasources>
寮曠敤錛?br> http://www.jspcn.net/htmlnews/11049371131251752.html
http://www-128.ibm.com/developerworks/cn/java/j-dao/
http://www.vermicelli.pasta.cs.uit.no/ipv6/students/andrer/doc/html/node18.html