要使用JiBX数据绑定生成和部署服务,请执行如下步骤。html
经过在Axis2_HOME / samples / quickstartjibx目录中的控制台上键入如下内容,使用WSDL2Java实用程序生成框架java
%AXIS2_HOME%\bin\wsdl2java.bat -uri resources\META-INF\StockQuoteService.wsdl -p samples.quickstart.service.jibx -d jibx -s -ss -sd -ssi -uw -o build\service
不然,只需在Axis2_HOME / samples / quickstartjibx目录中键入“ant generate.service”便可。web
选项-d jibx指定JiBX数据绑定。-s开关仅指定同步或阻塞调用。-ss开关建立服务器端代码(框架和相关文件)。-sd开关建立服务描述符(services.xml文件)。-ssi开关为服务框架建立一个接口。-uw开关打开传入和传出服务操做的参数,以建立更天然的编程接口。apache
运行WSDL2Java后,服务文件应位于build / service。若是直接使用WSDL2Java生成代码,则须要修改生成的框架以实现服务(若是使用“ant generate.service”,则完成的框架将自动复制到生成的框架上)。打开build / service / src / samples / quickstart / service / jibx / StockQuoteServiceSkeleton.java文件并对其进行修改,以将服务的功能添加到生成的方法中,如代码清单8所示。编程
代码8:定义服务框架文件服务器
package samples.quickstart.service.jibx; import java.util.HashMap; public class StockQuoteServiceSkeleton implements StockQuoteServiceSkeletonInterface { private HashMap map = new HashMap(); public void update(String symbol, Double price) { map.put(symbol, price); } public Double getPrice(String symbol) { Double ret = (Double) map.get(symbol); if (ret == null) { ret = new Double(42.0); } return ret; } }
如今,您能够经过在build / service目录中键入如下命令来构建项目:app
ant jar.server
若是一切顺利,您应该在窗口中看到BUILD SUCCESSFUL消息,并在build / service / build / lib目录中看到StockQuoteService.aar文件。将此文件复制到servlet引擎的webapps / axis2 / WEB-INF / services目录。框架
services.xmlwebapp
<service name="StockQuoteService" scope="application"> <messageReceivers> <messageReceiver mep="http://www.w3.org/ns/wsdl/in-out" class="samples.quickstart.service.jibx.StockQuoteServiceMessageReceiverInOut"/> <messageReceiver mep="http://www.w3.org/ns/wsdl/in-only" class="samples.quickstart.service.jibx.StockQuoteServiceMessageReceiverInOnly"/> </messageReceivers> <parameter name="ServiceClass">samples.quickstart.service.jibx.StockQuoteServiceSkeleton </parameter> <operation name="update" mep="http://www.w3.org/ns/wsdl/in-only"> <actionMapping>urn:update</actionMapping> </operation> <operation name="getPrice" mep="http://www.w3.org/ns/wsdl/in-out"> <actionMapping>urn:getPrice</actionMapping> <outputActionMapping>http://quickstart.samples/StockQuoteServicePortType/getPriceResponse</outputActionMapping> </operation> </service>
注意,消息接受处理器类变了学习
<messageReceiver mep="http://www.w3.org/ns/wsdl/in-out" class="samples.quickstart.service.jibx.StockQuoteServiceMessageReceiverInOut"/> <messageReceiver mep="http://www.w3.org/ns/wsdl/in-only" class="samples.quickstart.service.jibx.StockQuoteServiceMessageReceiverInOnly"/>
您能够经过查看服务列表来检查以确保服务已正确部署,
http://localhost:8080/axis2/services/listServices
您还能够在如下位置检查自定义WSDL:
http://localhost:8080/axis2/services/StockQuoteService?wsdl
schema
http://localhost:8080/axis2/services/StockQuoteService?xsd