WEB开发网      婵犵數濞€濞佳囧磹婵犳艾鐤炬い鎰堕檮閸嬬喐銇勯弽銊с€掗梻鍕閺岋箑螣娓氼垱笑闂佽姘﹂褔婀佸┑鐘诧工妤犲憡绂嶉崜褏纾奸弶鍫涘妼缁楁岸鏌熷畡鐗堝殗闁诡喒鏅犲畷褰掝敃閵堝棙顔忔繝鐢靛仦閸ㄥ爼骞愰幘顔肩;闁规崘绉ぐ鎺撳亹闁绘垶锕╁Λ鍕⒑閹肩偛濡奸悗娑掓櫇缁顓兼径妯绘櫇闂佹寧绻傞弻濠囨晝閸屾稓鍘甸柣搴㈢⊕閿氶柣蹇ョ稻缁绘繃绻濋崘銊т紝闂佽鍨伴崯鏉戠暦閻旂⒈鏁傞柛鈾€鏅欑槐妯衡攽閻愬樊鍤熷┑顔藉劤铻為柛鏇ㄥ墯閸欏繘鏌嶉崫鍕櫣缂佲偓婢跺绠鹃柟瀛樼箘閿涘秵顨ラ悙顏勭伈闁诡喖缍婂畷鎯邦槻婵℃彃顭烽弻娑㈠Ω閵夈儺鍔夌紓浣稿€哥粔褰掑极閹剧粯鏅搁柨鐕傛嫹 ---闂傚倷鐒︾€笛兠洪埡鍛闁跨噦鎷�
开发学院WEB开发Jsp J2EE Web服务客户端质量报告(五) 阅读

J2EE Web服务客户端质量报告(五)

 2008-01-05 08:21:06 来源:WEB开发网 闂傚倷绶氬ḿ褍螞閹绢喖绠柨鐕傛嫹闂傚倷绀侀幉锟犲垂閻㈠灚宕查柟鎵閸庡秵銇勯幒鎴濃偓鐢稿磻閹炬枼妲堟繛鍡楃С濞岊亞绱撻崒姘扁枌闁瑰嚖鎷�婵犵數濮幏鍐川椤撴繄鎹曢梻渚€娼уú銈吤洪妸鈺佺劦妞ゆ帊鑳堕埊鏇㈡煏閸モ晛浠х紒杈╁仱閺佹捇鏁撻敓锟�闂傚倷绶氬ḿ褍螞閹绢喖绠柨鐕傛嫹  闂傚倷鑳舵灙缂佺粯顨呴埢宥夊即閵忕姵鐎梺缁樺姈椤愮厧鈽夊Ο閿嬬€婚梺褰掑亰閸撴稑鈻斿鑸碘拺闁告稑饪村▓鏃€绻涚仦鍌氬闁崇粯鎹囬獮瀣攽閹邦剚顔傛俊鐐€栧濠氬储瑜忛幉鎾晸閿燂拷
核心提示:建立样品客户端应用要建立样品客户端应用,请将下列文件系统添加到IDE中:<download Directory>/Metrics/TransactionClient. 该文件系统包含一个应用类和一个Xact 软件包,J2EE Web服务客户端质量报告(五),应用类可模拟客户端事务的执行,Xact 软件包包含客户端Web
建立样品客户端应用

  要建立样品客户端应用,请将下列文件系统添加到IDE中:<download Directory>/Metrics/TransactionClient.
该文件系统包含一个应用类和一个Xact 软件包。应用类可模拟客户端事务的执行,Xact 软件包包含客户端Web服务处理器。

  Xact软件包可使用Sun Web服务开发者工具包来创建,这个工具包包括在Sun ONE应用框架内。批文件gen.bat使用wscompile命令创建Xact软件包。假如你想重建该软件包的话, 你只需调整环境变量和它使用的config.xml 中的URL。但是,假如你这样做的话,你得重写添加到Stub 类Web方法的代码行,你要用它来覆盖原来的代码行。

  我们看看XactClientApp,样品客户端应用程序类:

import Xact.*;
import javax.xml.rpc.Stub;
import Payload.*;

public class XactClientApp {

/** Creates a new instance of XactClientApp */
public XactClientApp() {
}

/**
* @param args the command line arguments
*/

public static void main(String[] args) {
 try {
  int cyclesPerXact = 1;
  int numberXacts = 5;
  String transactionID = "";
  String transactionType =
  String.valueOf(cyclesPerXact) +" submit,check,gets";
  Stub stub = createPRoxy();
  XactServiceServantInterface xact = (XactServiceServantInterface)stub;
  CurrentReport cr = new CurrentReport();
  for (int x=1; x<= numberXacts;x++){
   cr.BeginTransaction();
   for (int i=1; i<=cyclesPerXact;i++){
    transactionID = xact.submitWork("new transaction");
    System.out.println("Transaction:" + transactionID);
    boolean unused = xact.checkWork(transactionID);
    String ignore = xact.getResult(transactionID);
   }
   cr.CommitTransaction(transactionID, transactionType,"sUCcess");
  }
 } catch (Exception ex) {
  ex.printStackTrace();
 }
}

private static Stub createProxy() {
 return (Stub)(new XactService_Impl()).getXactServiceServantInterfacePort();
}
}
  先看它的内部循环。客户端应用判定商业事务的组成。在本例中,它包括三个Web服务调用:针对submitWork()、checkWork()和getResult()的分别调用。客户端使用beginTransaction()和 commitTransaction()定界事务。在该循环的第二个循环中,在CurrentReport.LastReport 对象中将出现一个完整的ClientReport。当客户端调用submitWork()时,Web 服务客户端Stub 类中相应方法调用Serializer.attachPendingReportToMessage() 将该报告连接到SOAP信息上。

  CyclesperXact和numberXacts用于控制每件事务的Web服务调用数和客户端在运行过程中递交的事务数。

  右击应用程序图标XactClientApp;先选择Build All项,接着选择Execute项。在执行窗口中,你会看到:对于每件事务,应用都报告它收到的事务标志符。观察应用服务Windows输出控制台,你可以看到以下的代码行:

INFO: CORE3274: successful server startup
INFO: CORE5053: application onReady complete.
INFO: CORE3282: stdout: Exception occurred connecting to queue: javax.naming.Nam
eNotFoundException
INFO: CORE3282: stdout: Exception occurred connecting to queue: javax.naming.Nam
eNotFoundException
INFO: CORE3282: stdout: Exception occurred connecting to queue: javax.naming.Nam
eNotFoundException
INFO: CORE3282: stdout: Exception occurred connecting to queue: javax.naming.Nam
eNotFoundException

  我们还没有安装应用服务次数排列或者配置应用服务次数读取器EJB。客户端产生次数福建,服务器接收它,并试图将它列队到一个不存在的队列中。Serializer 类只是报告错误并答应应用程序继续运行。回想我们的目标之一就是保持商业事物系统的总可靠性。可是我们却看到即使新的次数组件失败,要害的商业事务仍然可以照常进行。进入讨论组讨论。

Tags:JEE Web 服务

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接