Axis2的使用
来源:互联网 发布:win8安装ubuntu 编辑:程序博客网 时间:2024/05/18 03:22
java2wsdl.bat的使用
java2wsdl -cp -cn <要暴露的Java类服务> -of <生成的wsdl文件名>
services.xml的定义文件
<service name="StockQuoteService" scope="application"> <description> Stock Quote Sample Service </description> <messageReceivers> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/> </messageReceivers> <parameter name="ServiceClass"> samples.quickstart.service.pojo.StockQuoteService </parameter></service>
根据wsdl生成java文件
使用adb的生成java服务端文件
(Windows)%AXIS2_HOME%\bin\wsdl2java -uri resources\META-INF\StockQuoteService.wsdl -p samples.quickstart.service.adb -d adb -s -ss -sd -ssi -o build\service(Linux)$AXIS2_HOME/bin/wsdl2java -uri resources/META-INF/StockQuoteService.wsdl -p samples.quickstart.service.adb -d adb -s -ss -sd -ssi -o build/service
使用XMLBeans生成Java服务端文件
%AXIS2_HOME%\bin\wsdl2java -uri resources\META-INF\StockQuoteService.wsdl -p samples.quickstart.service.xmlbeans -d xmlbeans -s -ss -sd -ssi -o build\service
使用JiBX生成服务端Java文件
%AXIS2_HOME%\bin\wsdl2java -uri resources\META-INF\StockQuoteService.wsdl -p samples.quickstart.service.jibx -d jibx -s -ss -sd -ssi -uw -o build\service
生成调用服务客户端
使用通用的OMElement元素编写客户端代码,把OMElement对照的看成dom4j中的Element即可,也就是一个xml的文档;相关Demo如下
package samples.quickstart.clients;import org.apache.axiom.om.OMAbstractFactory;import org.apache.axiom.om.OMElement;import org.apache.axiom.om.OMFactory;import org.apache.axiom.om.OMNamespace;import org.apache.axis2.Constants;import org.apache.axis2.addressing.EndpointReference;import org.apache.axis2.client.Options;import org.apache.axis2.client.ServiceClient;public class AXIOMClient { private static EndpointReference targetEPR = new EndpointReference("http://localhost:8080/axis2/services/StockQuoteService"); public static OMElement getPricePayload(String symbol) { OMFactory fac = OMAbstractFactory.getOMFactory(); OMNamespace omNs = fac.createOMNamespace("http://axiom.service.quickstart.samples/xsd", "tns"); OMElement method = fac.createOMElement("getPrice", omNs); OMElement value = fac.createOMElement("symbol", omNs); value.addChild(fac.createOMText(value, symbol)); method.addChild(value); return method; } public static OMElement updatePayload(String symbol, double price) { OMFactory fac = OMAbstractFactory.getOMFactory(); OMNamespace omNs = fac.createOMNamespace("http://axiom.service.quickstart.samples/xsd", "tns"); OMElement method = fac.createOMElement("update", omNs); OMElement value1 = fac.createOMElement("symbol", omNs); value1.addChild(fac.createOMText(value1, symbol)); method.addChild(value1); OMElement value2 = fac.createOMElement("price", omNs); value2.addChild(fac.createOMText(value2, Double.toString(price))); method.addChild(value2); return method; } public static void main(String[] args) { try { OMElement getPricePayload = getPricePayload("WSO"); OMElement updatePayload = updatePayload("WSO", 123.42); Options options = new Options(); options.setTo(targetEPR); options.setTransportInProtocol(Constants.TRANSPORT_HTTP); ServiceClient sender = new ServiceClient(); sender.setOptions(options); sender.fireAndForget(updatePayload); System.err.println("price updated"); OMElement result = sender.sendReceive(getPricePayload); String response = result.getFirstElement().getText(); System.err.println("Current price of WSO: " + response); } catch (Exception e) { e.printStackTrace(); } }}
使用ADB
%AXIS2_HOME%\bin\wsdl2java -uri resources\META-INF\StockQuoteService.wsdl -p samples.quickstart.clients -d adb -s -o build\client
ADB形式的调用方法
package samples.quickstart.clients;import samples.quickstart.service.adb.StockQuoteServiceStub;public class ADBClient{ public static void main(java.lang.String args[]){ try{ StockQuoteServiceStub stub = new StockQuoteServiceStub ("http://localhost:8080/axis2/services/StockQuoteService"); getPrice(stub); update(stub); getPrice(stub); } catch(Exception e){ e.printStackTrace(); System.err.println("\n\n\n"); } } /* fire and forget */ public static void update(StockQuoteServiceStub stub){ try{ StockQuoteServiceStub.Update req = new StockQuoteServiceStub.Update(); req.setSymbol ("ABC"); req.setPrice (42.35); stub.update(req); System.err.println("price updated"); } catch(Exception e){ e.printStackTrace(); System.err.println("\n\n\n"); } } /* two way call/receive */ public static void getPrice(StockQuoteServiceStub stub){ try{ StockQuoteServiceStub.GetPrice req = new StockQuoteServiceStub.GetPrice(); req.setSymbol("ABC"); StockQuoteServiceStub.GetPriceResponse res = stub.getPrice(req); System.err.println(res.get_return()); } catch(Exception e){ e.printStackTrace(); System.err.println("\n\n\n"); } }}
使用XmlBeans的形式生成调用Java代码
%AXIS2_HOME%\bin\wsdl2java -uri resources\META-INF\StockQuoteService.wsdl -p samples.quickstart.service.xmlbeans -d xmlbeans -s -o build\client
客户端调用的Java代码
package samples.quickstart.clients;import samples.quickstart.service.xmlbeans.StockQuoteServiceStub;import samples.quickstart.service.xmlbeans.xsd.GetPriceDocument;import samples.quickstart.service.xmlbeans.xsd.GetPriceResponseDocument;import samples.quickstart.service.xmlbeans.xsd.UpdateDocument;public class XMLBEANSClient{ public static void main(java.lang.String args[]){ try{ StockQuoteServiceStub stub = new StockQuoteServiceStub ("http://localhost:8080/axis2/services/StockQuoteService"); getPrice(stub); update(stub); getPrice(stub); } catch(Exception e){ e.printStackTrace(); System.err.println("\n\n\n"); } } /* fire and forget */ public static void update(StockQuoteServiceStub stub){ try{ UpdateDocument reqDoc = UpdateDocument.Factory.newInstance(); UpdateDocument.Update req = reqDoc.addNewUpdate(); req.setSymbol ("BCD"); req.setPrice (42.32); stub.update(reqDoc); System.err.println("price updated"); } catch(Exception e){ e.printStackTrace(); System.err.println("\n\n\n"); } } /* two way call/receive */ public static void getPrice(StockQuoteServiceStub stub){ try{ GetPriceDocument reqDoc = GetPriceDocument.Factory.newInstance(); GetPriceDocument.GetPrice req = reqDoc.addNewGetPrice(); req.setSymbol("BCD"); GetPriceResponseDocument res = stub.getPrice(reqDoc); System.err.println(res.getGetPriceResponse().getReturn()); } catch(Exception e){ e.printStackTrace(); System.err.println("\n\n\n"); } }}
JiBX方式生成客户端代码
%AXIS2_HOME%\bin\wsdl2java -uri resources\META-INF\StockQuoteService.wsdl -p samples.quickstart.clients -d jibx -s -uw -o build\client
调用的JiBXClient 类
package samples.quickstart.clients;import samples.quickstart.service.jibx.StockQuoteServiceStub;public class JiBXClient{ public static void main(java.lang.String args[]){ try{ StockQuoteServiceStub stub = new StockQuoteServiceStub ("http://localhost:8080/axis2/services/StockQuoteService"); getPrice(stub); update(stub); getPrice(stub); } catch(Exception e){ e.printStackTrace(); System.err.println("\n\n\n"); } } /* fire and forget */ public static void update(StockQuoteServiceStub stub){ try{ stub.update("CDE", new Double(42.35)); System.err.println("price updated"); } catch(Exception e){ e.printStackTrace(); System.err.println("\n\n\n"); } } /* two way call/receive */ public static void getPrice(StockQuoteServiceStub stub){ try{ System.err.println(stub.getPrice("CDE")); } catch(Exception e){ e.printStackTrace(); System.err.println("\n\n\n"); } }}
0 0
- Axis2的使用
- Axis2的具体使用
- axis2的简单使用
- Axis2 的使用
- Axis2的使用
- axis2的使用(转载)
- axis2使用
- Axis2使用WebService的客户端实例
- axis2客户端需要使用的jar包
- Axis2 中的工具wsdl2Java 的使用点滴
- Axis2的使用,大家帮帮忙啊
- Axis2的使用,大家帮帮忙啊
- ECLIPSE中使用AXIS2的几个问题
- Axis2 中的工具wsdl2Java 的使用点滴
- 使用axis2进行WebService的开发
- 使用axis2进行WebService的开发
- 使用axis2进行WebService的开发
- 使用axis2进行WebService的开发
- 使用批处理文件异地备份数据库(最近几天的数据)
- Remove Nth Node From End of List
- 常用DOS命令全面收藏
- oracle函數大全(中文版)
- HOWTO--在ORACLE中移动数据库文件大全
- Axis2的使用
- 使用FTP自动进行文件传输
- HOWTO--如何移動Oracle的所有數據文件
- oracle 9i database 在win2k server上搬家!
- Valgrind 安装与使用
- 必须掌握的八个DOS命令
- oracle文档集锦(1)
- 必须掌握的八个DOS命令
- 发表了译文-“使用FitNesse进行测试先行开发”