一、解析示例:
public Senddividendstrategy senddividendstrategy(OMElement in) { Senddividendstrategy svs = null; try { svs = EbsServiceImp.checkDataByOMElement(in); } catch (Exception e) { e.printStackTrace(); } return svs; } public static Senddividendstrategy checkDataByOMElement(OMElement element) throws AxisFault, Exception { Senddividendstrategy s = null; if (element != null) { Calendar cal = Calendar.getInstance(); SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd"); String mDateTime = formater.format(cal.getTime()); List<Senddividendstrategy> sList = new ArrayList<Senddividendstrategy>(); Senddividendstrategy svs = null; Iterator iteClient = element.getChildElements(); while (iteClient.hasNext()) { OMNode omNodeClient = (OMNode) iteClient.next(); if (omNodeClient.getType() == 1) { OMElement omeClient = (OMElement) omNodeClient; if (omeClient.getLocalName().toLowerCase().equals("sparams")) { Iterator iteTParam = omeClient.getChildElements(); while (iteTParam.hasNext()) { OMNode omNodeTParam = (OMNode) iteTParam.next(); if (omNodeTParam.getType() == 1) { OMElement omeTParam = (OMElement) omNodeTParam; if (omeTParam.getLocalName().toLowerCase().equals("sparam")) { svs = (Senddividendstrategy) BeanUtil.processObject(omeTParam, Senddividendstrategy.class, null, true, new DefaultObjectSupplier()); sList.add(svs); } } } } } } s = senddividendstrategyCal(sList); } return s; }
二、封装示例:
1、 /** * 测试 * @param statistic * @param userId * @return */ public static String sendDataDfzwByOMElement() { targetEPR = new EndpointReference("http://192.168.10.227/ebsService/services/ebsService?wsdl"); // 创建request SOAP包 OMFactory fac = OMAbstractFactory.getOMFactory(); // OMNamespace指定此SOAP文档名称空间 OMNamespace om = fac.createOMNamespace("http://service.eee.shun.com", "client"); // 创建元素,并指定其在om指代的名称空间中,元素名必须跟services.xml重大operation的name相同 OMElement method = fac.createOMElement("senddividendstrategy", om); OMElement root; OMElement svsListOmElement; List<Senddividendstrategy> svsList = new ArrayList<Senddividendstrategy>(); try { Senddividendstrategy s = new Senddividendstrategy(); for (int i = 0; i < 10 ; i++) { s.setDividend_date("1"); s.setCompany_code("2"); s.setEquity_note_number("3"); s.setDividend_line_number(Long.valueOf(4)); s.setAssign_type_code("5"); s.setAssign_source("6"); s.setSegment3("7"); s.setAmount(Long.valueOf(8)); s.setCash_amount(Long.valueOf(9)); s.setCash_proportion(Long.valueOf(10)); s.setCash_person_proportion(Long.valueOf(11)); s.setCapital_source("12"); s.setCapital_amount(Long.valueOf(13)); s.setCapital_proportion(Long.valueOf(14)); s.setCapital_person_proportion(Long.valueOf(15)); s.setEquity_category("16"); s.setEquity_properties("17"); s.setReduce_tax_amount(Long.valueOf(18)); s.setStart_date("19"); s.setManager_type("20"); s.setProcess_startus("21"); s.setData_status("22"); s.setX_msg_data("23"); s.setX_return_status("24"); svsList.add(s); } root = fac.createOMElement("root", null); svsListOmElement = BeanUtil.getOMElement(new QName("sparams"), svsList.toArray(), new QName("sparam"), false, null); root.addChild(svsListOmElement); method.addChild(root); Options options = new Options(); options.setTo(targetEPR); ServiceClient sender = new ServiceClient(); sender.setOptions(options); // 发出request SOAP // 同时将得到的远端由senddividendstrategy方法返回的信息保存到result // 通过services.xml能准确找到senddividendstrategy方法所在的文件 sender.sendReceive(method); String filePath = "E:\\ebs.xml"; writeToFile(filePath, method); } catch (Exception e) { e.printStackTrace(); } return null; } 2、 //创建response SOAP包 OMFactory fac = OMAbstractFactory.getOMFactory(); //OMNamespace指定此SOAP文档名称空间 OMNamespace omNs = fac.createOMNamespace("http://service.eee.shun.com", "service"); //创建元素SafetyTrouble返回给客服端的元素,并指定其在omNs指代的名称空间中 OMElement resp = fac.createOMElement("line-service", omNs); OMElement root = fac.createOMElement("root", null); ReturnOutParameter rop = new ReturnOutParameter(); List<ReturnOutParameter> ropList = new ArrayList<ReturnOutParameter>(); OMElement ropListOmElement; rop.setX_return_status(x_return_status); rop.setX_msg_data(x_msg_data); ropList.add(rop); //添加消息信息 ropListOmElement = BeanUtil.getOMElement(new QName("rparams"), ropList.toArray(), new QName("rparam"), false, null); root.addChild(ropListOmElement); resp.addChild(root); return resp;
相关推荐
11. **axis2-metadata-1.4.jar**:这个JAR文件包含了Axis2的元数据处理,用于处理Web服务的描述和类型信息。 12. **axis2-jaxws-1.4.jar**:Axis2 JAX-WS模块提供了对JAX-WS规范的支持,使得开发人员可以创建符合WS...
2. **服务(Service)**:服务是 Axis2 的基本构建块,它封装了业务逻辑。通过源码,我们可以看到服务的生命周期管理,包括加载、启动、停止和卸载等过程。 3. **消息处理器(Message Processor)**:这是 Axis2 ...
Axis2 是基于Axis1构建的,但设计上进行了许多改进,例如引入了更模块化的设计,使得 Axis2 更加灵活,支持多种传输协议(HTTP、JMS等)和数据格式(SOAP、REST、XML、JSON等)。源代码的学习可以帮助开发者了解这些...
Axis2的SOAP引擎是其核心组件之一,负责处理SOAP请求和响应,包括解析SOAP消息、调用相应的服务端点以及生成SOAP响应。 三、安全性和可靠性 Axis2提供了一系列的安全特性,包括消息级别的安全(如使用WS-Security...
4. **从设备(Slave)部分**:从设备部分接收来自I2C总线的信号,并将其解析为AXIS接口的数据。这涉及对I2C信号的同步、解码地址和数据,并在AXIS接口上生成相应的TVALID和TDATA信号。 5. **代码结构**:Verilog...
3. **服务和消息引擎**:Axis2的服务引擎负责处理SOAP消息,而消息引擎则管理消息的生命周期,包括接收、解析、处理和发送。 4. **部署模型**:Axis2支持多种部署方式,如WAR(Web应用归档)部署、AAR(Axis2应用...
Axis2在Java平台上提供了强大的功能和灵活性,使得开发人员能够轻松地实现复杂的Web服务。 #### 二、SOAP技术介绍 SOAP(Simple Object Access Protocol)是一种轻量级协议,用于交换结构化的和与平台无关的信息。...
将生成的AAR文件上传到Axis2服务器的`/services`目录下,Axis2会自动解析并部署服务。然后,你可以通过浏览器访问`http://yourserver:port/axis2/services/EmployeeManagerService?wsdl`来查看服务的WSDL(Web ...
生成的客户端代码会封装SOAP消息的构建和解析,使得调用Web服务如同调用本地方法一样简单。 5. 错误处理和安全性: 在实现文件传输时,需要注意错误处理,比如文件不存在、权限问题、网络中断等。此外,为了确保...
为了提高性能,AXIS2提供了MTOM和SwA支持,允许高效地传输二进制数据。此外,还可以通过缓存服务描述、使用线程池和调整传输层设置来进一步优化。 总结来说,AXIS2客户端调用实例涵盖了从服务引用、配置到实际调用...
1. 使用最新版本:及时更新Axis2和其他依赖库,以获取最新的安全补丁和功能改进。 2. 错误处理:确保在调用服务时捕获异常,并提供适当的错误处理机制。 3. 性能优化:考虑使用MTOM和XOP优化大文件传输,减少网络...
在本文档中,我们将详细介绍如何使用Axis2来发布和调用WebService服务。 对于Axis2程序包的下载,可以访问其官方网站:[http://ws.apache.org/axis2/](http://ws.apache.org/axis2/) 进行下载。需要注意的是,由于...
Axis2是Apache Axis的第二代产品,它设计的目标是提供一个更轻量级、模块化且高性能的平台,用于构建和部署Web服务。与上一代相比,Axis2增强了并发处理能力,优化了消息处理流程,并引入了服务组件模型(Service ...
**WebService与Axis2详解** 1. **WebService** WebService是一种基于开放标准(如SOAP、WSDL和...理解并熟练掌握WebService和Axis2,对于开发和部署分布式服务至关重要,同时,控制权限是保证服务安全的重要一环。
6. **支持多种协议和数据格式**:Axis2 支持 SOAP、REST、WS-* 规范等多种通信协议,并能处理 XML、JSON 等数据格式。代码生成向导会根据 WSDL 文件中的定义生成相应支持的代码。 7. **部署和运行**:生成的代码...
2. **SOAP处理**:Axis2对SOAP 1.1和1.2提供全面支持,能够解析和生成SOAP消息。它还支持SOAP与HTTP、SMTP等多种传输协议的绑定。 3. **WS-*支持**:Axis2实现了许多Web服务标准,如WS-Security(安全)、WS-...
综上所述,本文档详细介绍了WebService的基本概念、工作原理以及如何使用Axis2框架构建WebService服务器和客户端。对于初学者来说,掌握这些知识是非常重要的,有助于更好地理解和应用这项技术。
Axis2是Apache软件基金会开发的一个高效、灵活且可扩展的Web服务框架,它基于SOAP(简单对象访问协议)和WSDL(Web服务描述语言)。本教程将深入探讨如何使用Axis2搭建Web服务以及进行客户端测试。 首先,我们需要...
AXIS1全套JAR包是针对AXIS 1版本...总之,AXIS1全套JAR包是Java Web服务开发的重要工具,包含了一整套处理SOAP通信和WSDL解析的类库,对于需要维护或构建基于AXIS1的Web服务的开发者来说,这是一个必不可少的资源集合。
3. **消息引擎**:Axis2的消息引擎处理SOAP消息的解析和生成,支持MTOM和SwA(SwA是指SOAP with Attachments,用于在SOAP消息中传输二进制数据)优化,以提高性能和减少网络流量。 4. **Transport机制**:Axis2支持...