axis2生成客户端代码

时间:2023-02-12 10:01:02

Ø         AXIS_HOME

D:/axis1_4

Ø         AXIS_LIB

%AXIS_HOME%/lib

Ø         AXIS_CLASSPATH

D:/axis1_4/lib/axis.jar;D:/axis1_4/lib/axis-ant.jar;D:/axis1_4/lib/commons-discovery-0.2.jar;D:/axis1_4/lib/commons-logging-1.0.4.jar;D:/axis1_4/lib/jaxrpc.jar;D:/axis1_4/lib/saaj.jar;D:/axis1_4/lib/log4j-1.2.8.jar;D:/axis1_4/lib/wsdl4j-1.5.1.jar;

Ø         CLASSPATH

添加%axis_classpath%

使用AXIOM创建客户端
axis2生成客户端代码
axis2生成客户端代码欲用AXIOM创建客户端,请执行以下步骤。
axis2生成客户端代码
axis2生成客户端代码为了完整性,下面的目录结构将“用AXIOM创建服务”一节中的目录一并列出。 
axis2生成客户端代码
axis2生成客户端代码
- quickstartaxiom
axis2生成客户端代码   
- README.txt
axis2生成客户端代码   
- build.xml
axis2生成客户端代码   
- resources
axis2生成客户端代码     
- META-INF
axis2生成客户端代码       
- services.xml
axis2生成客户端代码       
- StockQuoteService.wsdl
axis2生成客户端代码   
- src
axis2生成客户端代码     
- samples
axis2生成客户端代码       
- quickstart
axis2生成客户端代码         
- service
axis2生成客户端代码           
- axiom
axis2生成客户端代码             
- StockQuoteService.java
axis2生成客户端代码         
- clients
axis2生成客户端代码           
- AXIOMClient.java
axis2生成客户端代码
axis2生成客户端代码上述引用的AXIOMClient.java类定义如代码9所示。
axis2生成客户端代码
axis2生成客户端代码Code Listing 
9: The AXIOMClient class using AXIOM
axis2生成客户端代码 
axis2生成客户端代码
package samples.quickstart.clients;
axis2生成客户端代码
import org.apache.axiom.om.OMAbstractFactory;
axis2生成客户端代码
import org.apache.axiom.om.OMElement;
axis2生成客户端代码
import org.apache.axiom.om.OMFactory;
axis2生成客户端代码
import org.apache.axiom.om.OMNamespace;
axis2生成客户端代码
import org.apache.axis2.Constants;
axis2生成客户端代码
import org.apache.axis2.addressing.EndpointReference;
axis2生成客户端代码
import org.apache.axis2.client.Options;
axis2生成客户端代码
import org.apache.axis2.client.ServiceClient;
axis2生成客户端代码
public class AXIOMClient {
axis2生成客户端代码    
private static EndpointReference targetEPR = 
axis2生成客户端代码        
new EndpointReference("http://localhost:8080/axis2/services/StockQuoteService");
axis2生成客户端代码    
public static OMElement getPricePayload(String symbol) {
axis2生成客户端代码        OMFactory fac 
= OMAbstractFactory.getOMFactory();
axis2生成客户端代码        OMNamespace omNs 
= fac.createOMNamespace("http://axiom.service.quickstart.samples/xsd""tns");
axis2生成客户端代码        OMElement method 
= fac.createOMElement("getPrice", omNs);
axis2生成客户端代码        OMElement value 
= fac.createOMElement("symbol", omNs);
axis2生成客户端代码        value.addChild(fac.createOMText(value, symbol));
axis2生成客户端代码        method.addChild(value);
axis2生成客户端代码        
return method;
axis2生成客户端代码    }

axis2生成客户端代码    
public static OMElement updatePayload(String symbol, double price) {
axis2生成客户端代码        OMFactory fac 
= OMAbstractFactory.getOMFactory();
axis2生成客户端代码        OMNamespace omNs 
= fac.createOMNamespace("http://axiom.service.quickstart.samples/xsd""tns");
axis2生成客户端代码        OMElement method 
= fac.createOMElement("update", omNs);
axis2生成客户端代码        OMElement value1 
= fac.createOMElement("symbol", omNs);
axis2生成客户端代码        value1.addChild(fac.createOMText(value1, symbol));
axis2生成客户端代码        method.addChild(value1);
axis2生成客户端代码        OMElement value2 
= fac.createOMElement("price", omNs);
axis2生成客户端代码        value2.addChild(fac.createOMText(value2,
axis2生成客户端代码                
& nbsp;                 &nbs p;      Double.toString(price)));
axis2生成客户端代码        method.addChild(value2);
axis2生成客户端代码        
return method;
axis2生成客户端代码    }

axis2生成客户端代码    
public static void main(String[] args) {
axis2生成客户端代码        
try {
axis2生成客户端代码            OMElement getPricePayload 
= getPricePayload("WSO");
axis2生成客户端代码            OMElement updatePayload 
= updatePayload("WSO"123.42);
axis2生成客户端代码            Options options 
= new Options();
axis2生成客户端代码            options.setTo(targetEPR);
axis2生成客户端代码            options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
axis2生成客户端代码            ServiceClient sender 
= new ServiceClient();
axis2生成客户端代码            sender.setOptions(options);
axis2生成客户端代码            sender.fireAndForget(updatePayload);
axis2生成客户端代码            System.err.println(
"price updated");
axis2生成客户端代码            OMElement result 
= sender.sendReceive(getPricePayload);
axis2生成客户端代码            String response 
= result.getFirstElement().getText();
axis2生成客户端代码            System.err.println(
"Current price of WSO: " + response);
axis2生成客户端代码        }
 catch (Exception e) {
axis2生成客户端代码            e.printStackTrace();
axis2生成客户端代码        }

axis2生成客户端代码    }
   
axis2生成客户端代码}

axis2生成客户端代码 
axis2生成客户端代码
axis2生成客户端代码Axis2使用的AXIOM又叫AXIS对象模型,它是一个以StAX  API (XML的流式 API)为基础的类似DOM (文档对象模型)的结构。在这里,您 为调用服务提供的两个方法update和getPrice设置了有效载荷。有效载荷的建立过程类似于您为AXIOM服务的getPriceResponse 建立有效载荷的情形。然后,您设置可选类,并创建一个用于和服务端通讯的ServiceClient。接下来先调用Update方法,这是 一个一触即忘的方法,因为它没有任何返回值。最后调用getPrice方法从服务端获得当前股价并显示出来。
axis2生成客户端代码
axis2生成客户端代码现在,您可以通过键入在Axis2_HOME
/samples/quickstartaxiom的命令”ant run.client”构建并运行AXIOM客户端。
axis2生成客户端代码
axis2生成客户端代码你应该看到以下输出: 
axis2生成客户端代码
axis2生成客户端代码done
axis2生成客户端代码Current price of WSO: 
123.42
axis2生成客户端代码
axis2生成客户端代码 
axis2生成客户端代码
axis2生成客户端代码使用ADB生成客户端
axis2生成客户端代码
axis2生成客户端代码若要用ADB生成客户端,请执行以下步骤。 
axis2生成客户端代码
axis2生成客户端代码输入下列在Axis2_HOME
/samples/quickstartadb目录中的命令来创建ADB数据绑定的客户端: 
axis2生成客户端代码
axis2生成客户端代码
%AXIS2_HOME%\bin\WSDL2Java -uri resources\META-INF\StockQuoteService.wsdl -p samples.quickstart.clients -d adb --o build\client
axis2生成客户端代码
axis2生成客户端代码或者,输入在Axis2_HOME
/samples/quickstartadb目录中的命令”ant generate.client”。 
axis2生成客户端代码
axis2生成客户端代码代码10是quickstartadb
/src/samples/quickstart/clients/ADBClient.java的内容。
axis2生成客户端代码
axis2生成客户端代码Code Listing 
10: The ADBClient Class
axis2生成客户端代码 
axis2生成客户端代码
package samples.quickstart.clients;
axis2生成客户端代码
import samples.quickstart.service.adb.StockQuoteServiceStub;
axis2生成客户端代码
public class ADBClient{
axis2生成客户端代码    
public static void main(java.lang.String args[]){
axis2生成客户端代码        
try{
axis2生成客户端代码            StockQuoteServiceStub stub 
=
axis2生成客户端代码                
new StockQuoteServiceStub
axis2生成客户端代码                (
"http://localhost:8080/axis2/services/StockQuoteService");
axis2生成客户端代码            getPrice(stub);
axis2生成客户端代码            update(stub);
axis2生成客户端代码            getPrice(stub);
axis2生成客户端代码        }
 catch(Exception e){
axis2生成客户端代码            e.printStackTrace();
axis2生成客户端代码            System.err.println(
"\n\n\n");
axis2生成客户端代码        }

axis2生成客户端代码    }

axis2生成客户端代码    
/* fire and forget */
axis2生成客户端代码    
public static void update(StockQuoteServiceStub stub){
axis2生成客户端代码        
try{
axis2生成客户端代码            StockQuoteServiceStub.Update req 
= new StockQuoteServiceStub.Update();
axis2生成客户端代码            req.setSymbol (
"ABC");
axis2生成客户端代码            req.setPrice (
42.35);
axis2生成客户端代码            stub.update(req);
axis2生成客户端代码            System.err.println(
"price updated");
axis2生成客户端代码        }
 catch(Exception e){
axis2生成客户端代码            e.printStackTrace();
axis2生成客户端代码            System.err.println(
"\n\n\n");
axis2生成客户端代码        }

axis2生成客户端代码    }

axis2生成客户端代码    
/* two way call/receive */
axis2生成客户端代码    
public static void getPrice(StockQuoteServiceStub stub){
axis2生成客户端代码        
try{
axis2生成客户端代码            StockQuoteServiceStub.GetPrice req 
= new StockQuoteServiceStub.GetPrice();
axis2生成客户端代码            req.setSymbol(
"ABC");
axis2生成客户端代码            StockQuoteServiceStub.GetPriceResponse res 
=
axis2生成客户端代码                stub.getPrice(req);
axis2生成客户端代码            System.err.println(res.get_return());
axis2生成客户端代码        }
 catch(Exception e){
axis2生成客户端代码            e.printStackTrace();
axis2生成客户端代码            System.err.println(
"\n\n\n");
axis2生成客户端代码        }

axis2生成客户端代码    }

axis2生成客户端代码}

axis2生成客户端代码 
axis2生成客户端代码
axis2生成客户端代码这个类用你生成的Axis数据绑定创建了一个客户端存根。然后它调用web服务提供的 getPrice和update操作。该getPrice方法的操作创建GetPrice的有效载荷,并将符号设置为ABC。然后它发出请求,并显示当前 的股票价格。update方法创建了一个Update的有效载荷,并将标志设置为ABC,价格设置为42.
35 。 
axis2生成客户端代码
axis2生成客户端代码现在,请输入在Axis2_HOME
/samples/quickstartadb目录中的命令” ant run.client”, 建立并运行客户端。 
axis2生成客户端代码
axis2生成客户端代码你应该看到以下输出: 
axis2生成客户端代码
axis2生成客户端代码
42
axis2生成客户端代码price updated
axis2生成客户端代码
42.35
axis2生成客户端代码
axis2生成客户端代码 
axis2生成客户端代码
axis2生成客户端代码使用XMLBeans生成客户端
axis2生成客户端代码
axis2生成客户端代码若要使用XMLBeans生成客户端,请执行以下步骤。 
axis2生成客户端代码
axis2生成客户端代码通过输入在xmlbeansClient目录中的下列命令生成数据绑定。 
axis2生成客户端代码
axis2生成客户端代码
%AXIS2_HOME%\bin\WSDL2Java -uri resources\META-INF\StockQuoteService.wsdl -p samples.quickstart.service.xmlbeans -d xmlbeans --o build\client
axis2生成客户端代码
axis2生成客户端代码请注意,这将仅创建一个客户端存根代码而没有服务器端代码。 
axis2生成客户端代码
axis2生成客户端代码下面看看quickstartxmlbeans
/src/samples/quickstart/clients/XMLBEANSClient.java是如何定义的。见代码11 。
axis2生成客户端代码
axis2生成客户端代码Code Listing 
11: The XMLBEANSClient class
axis2生成客户端代码 
axis2生成客户端代码
package samples.quickstart.clients;
axis2生成客户端代码
import samples.quickstart.service.xmlbeans.StockQuoteServiceStub;
axis2生成客户端代码
import samples.quickstart.service.xmlbeans.xsd.GetPriceDocument;
axis2生成客户端代码
import samples.quickstart.service.xmlbeans.xsd.GetPriceResponseDocument;
axis2生成客户端代码
import samples.quickstart.service.xmlbeans.xsd.UpdateDocument;
axis2生成客户端代码
public class XMLBEANSClient{
axis2生成客户端代码    
public static void main(java.lang.String args[]){
axis2生成客户端代码        
try{
axis2生成客户端代码            StockQuoteServiceStub stub 
=
axis2生成客户端代码                
new StockQuoteServiceStub
axis2生成客户端代码                (
"http://localhost:8080/axis2/services/StockQuoteService");
axis2生成客户端代码            getPrice(stub);
axis2生成客户端代码            update(stub);
axis2生成客户端代码            getPrice(stub);
axis2生成客户端代码        }
 catch(Exception e){
axis2生成客户端代码            e.printStackTrace();
axis2生成客户端代码            System.err.println(
"\n\n\n");
axis2生成客户端代码        }

axis2生成客户端代码    }

axis2生成客户端代码    
/* fire and forget */
axis2生成客户端代码    
public static void update(StockQuoteServiceStub stub){
axis2生成客户端代码        
try{
axis2生成客户端代码            UpdateDocument reqDoc 
= UpdateDocument.Factory.newInstance();
axis2生成客户端代码            UpdateDocument.Update req 
= reqDoc.addNewUpdate();
axis2生成客户端代码            req.setSymbol (
"BCD");
axis2生成客户端代码            req.setPrice (
42.32);
axis2生成客户端代码            stub.update(reqDoc);
axis2生成客户端代码            System.err.println(
"price updated");
axis2生成客户端代码        }
 catch(Exception e){
axis2生成客户端代码            e.printStackTrace();
axis2生成客户端代码            System.err.println(
"\n\n\n");
axis2生成客户端代码        }

axis2生成客户端代码    }

axis2生成客户端代码    
/* two way call/receive */
axis2生成客户端代码    
public static void getPrice(StockQuoteServiceStub stub){
axis2生成客户端代码        
try{
axis2生成客户端代码            GetPriceDocument reqDoc 
= GetPriceDocument.Factory.newInstance();
axis2生成客户端代码            GetPriceDocument.GetPrice req 
= reqDoc.addNewGetPrice();
axis2生成客户端代码            req.setSymbol(
"BCD");
axis2生成客户端代码            GetPriceResponseDocument res 
=
axis2生成客户端代码                stub.getPrice(reqDoc);
axis2生成客户端代码            System.err.println(res.getGetPriceResponse().getReturn());
axis2生成客户端代码        }
 catch(Exception e){
axis2生成客户端代码            e.printStackTrace();
axis2生成客户端代码            System.err.println(
"\n\n\n");
axis2生成客户端代码        }

axis2生成客户端代码    }

axis2生成客户端代码}

axis2生成客户端代码 
axis2生成客户端代码
axis2生成客户端代码这个类用你生成的XML Beans数据绑定产生一个客户端存根。然后他调用web服务的getPrice和update操作。这个getPrice 方法产生它的一个内部GetPrice类,GetPriceDocument,并将它的符号设置为ABC.它然后发送请求并提取出GetPriceResponseDocument,显示价格为42.
32
axis2生成客户端代码
axis2生成客户端代码现在键入Axis2_HOME
/samples/quickstartxmlbeans目录中的命令”ant run.client”来构建和运行项目。你将看到下列输出
axis2生成客户端代码
axis2生成客户端代码
42 
axis2生成客户端代码price updated 
axis2生成客户端代码
42.32
axis2生成客户端代码
axis2生成客户端代码 
axis2生成客户端代码
axis2生成客户端代码使用JiBX生成一个客户端
axis2生成客户端代码
axis2生成客户端代码若要使用JiBX生成一个客户端,请执行下列步骤
axis2生成客户端代码
axis2生成客户端代码键入在Axis2_HOME
/samples/quickstartjibx目录中的下列命令来生成客户端存根。
axis2生成客户端代码
axis2生成客户端代码
%AXIS2_HOME%\bin\wsdl2java -uri resources\META-INF\StockQuoteService.wsdl -p samples.quickstart.clients -d jibx --uw -o build\client
axis2生成客户端代码
axis2生成客户端代码或者简单的运行命令
"ant generate.client"
axis2生成客户端代码
axis2生成客户端代码下面看看quickstartjibx
/src/samples/quickstart/clients/JiBXClient.java是如何定义的。见代码12.
axis2生成客户端代码
axis2生成客户端代码Code Listing 
12: The JiBXClient class
axis2生成客户端代码 
axis2生成客户端代码
package samples.quickstart.clients;
axis2生成客户端代码
import samples.quickstart.service.jibx.StockQuoteServiceStub;
axis2生成客户端代码
public class JiBXClient{
axis2生成客户端代码    
public static void main(java.lang.String args[]){
axis2生成客户端代码        
try{
axis2生成客户端代码            StockQuoteServiceStub stub 
=
axis2生成客户端代码                
new StockQuoteServiceStub
axis2生成客户端代码                (
"http://localhost:8080/axis2/services/StockQuoteService");
axis2生成客户端代码            getPrice(stub);
axis2生成客户端代码            update(stub);
axis2生成客户端代码            getPrice(stub);
axis2生成客户端代码        }
 catch(Exception e){
axis2生成客户端代码            e.printStackTrace();
axis2生成客户端代码            System.err.println(
"\n\n\n");
axis2生成客户端代码        }

axis2生成客户端代码    }

axis2生成客户端代码    
/* fire and forget */
axis2生成客户端代码    
public static void update(StockQuoteServiceStub stub){
axis2生成客户端代码        
try{
axis2生成客户端代码            stub.update(
"CDE"new Double(42.35));
axis2生成客户端代码            System.err.println(
"price updated");
axis2生成客户端代码        }
 catch(Exception e){
axis2生成客户端代码            e.printStackTrace();
axis2生成客户端代码            System.err.println(
"\n\n\n");
axis2生成客户端代码        }

axis2生成客户端代码    }

axis2生成客户端代码    
/* two way call/receive */
axis2生成客户端代码    
public static void getPrice(StockQuoteServiceStub stub){
axis2生成客户端代码        
try{
axis2生成客户端代码            System.err.println(stub.getPrice(
"CDE"));
axis2生成客户端代码        }
 catch(Exception e){
axis2生成客户端代码            e.printStackTrace();
axis2生成客户端代码            System.err.println(
"\n\n\n");
axis2生成客户端代码        }

axis2生成客户端代码    }

axis2生成客户端代码}

axis2生成客户端代码 
axis2生成客户端代码
axis2生成客户端代码这个类用你生成的JiBX 客户端存根访问web服务的getPrice和update操作。这个 getPrice 方法发送获取股票“ABC”价格的请求,然后显示当前股价。Update将“ABC”的股价设为42.
35。 
axis2生成客户端代码
axis2生成客户端代码现在,通过键入Axis2_HOME
/samples/quickstartjibx目录中的命令"ant run.client"来构建和运行客户端。
axis2生成客户端代码
axis2生成客户端代码您将看到下列输出:
axis2生成客户端代码
axis2生成客户端代码 
42 
axis2生成客户端代码 price updated 
axis2生成客户端代码 
42.35 


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/aseity/archive/2009/04/12/4066363.aspx