ofbiz11.04调用Webservice客户端

ofbiz迄今为止,最新的版本为11.04,而在9.04等版本中,使用的是axis1 ,在11.04中,使用的是axis2.因此调用Webservice客户端的方法也不一样.

    今天尝试着调用了ofbiz11.04的Webservice:

    在service.xml中,将service的export设置为true,暴露成外部的Webservice.以我的SendiEmail服务为例

   在地址栏中输入:http://127.0.0.1:8080/webtools/control/SOAPService/SendEmail?wsdl

 

<?xml version="1.0" encoding="UTF-8" ?> 
- <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://ofbiz.apache.org/service/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://ofbiz.apache.org/service/">
- <wsdl:types>
- <xsd:schema targetNamespace="http://ofbiz.apache.org/service/">
- <xsd:element name="std-String">
- <xsd:complexType>
  <xsd:attribute name="value" type="xsd:string" use="required" /> 
  </xsd:complexType>
  </xsd:element>
- <xsd:element name="std-Integer">
- <xsd:complexType>
  <xsd:attribute name="value" type="xsd:integer" use="required" /> 
  </xsd:complexType>
  </xsd:element>
- <xsd:element name="std-Long">
- <xsd:complexType>
  <xsd:attribute name="value" type="xsd:long" use="required" /> 
  </xsd:complexType>
  </xsd:element>
- <xsd:element name="std-Float">
- <xsd:complexType>
  <xsd:attribute name="value" type="xsd:float" use="required" /> 
  </xsd:complexType>
  </xsd:element>
- <xsd:element name="std-Double">
- <xsd:complexType>
  <xsd:attribute name="value" type="xsd:double" use="required" /> 
  </xsd:complexType>
  </xsd:element>
- <xsd:element name="std-Boolean">
- <xsd:complexType>
  <xsd:attribute name="value" type="xsd:boolean" use="required" /> 
  </xsd:complexType>
  </xsd:element>
- <xsd:element name="std-Locale">
- <xsd:complexType>
  <xsd:attribute name="value" type="xsd:string" use="required" /> 
  </xsd:complexType>
  </xsd:element>
+ <xsd:element name="sql-Timestamp">

.........

如果访问之后代码如这样,就表示设置成功.

加入axis2的jar包,这个不说明了,自己百度.

调用代码如下

 

import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMAttribute;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;




public class TestUtil {
		private static OMFactory fac=OMAbstractFactory.getOMFactory();
		private static OMNamespace omNs;


	    public static void main(String[] args) throws AxisFault { 
	    	 ServiceClient sc = new ServiceClient();
	         Options opts = new Options();
	         opts.setTo(new EndpointReference(
	            "http://localhost:8080/webtools/control/SOAPService"));
	         opts.setAction("SendEmail");
	         sc.setOptions(opts);
	         OMElement res = sc.sendReceive(createPayLoad());
	         System.out.println(res);

	   } 
	    private static OMElement createPayLoad() {

	        OMElement SendEmail = null;
			try {
				createSendMultiEmail = fac.createOMElement("SendEmail", omNs);
				OMElement mapMap = fac.createOMElement("map-Map", omNs);

				createSendMultiEmail.addChild(mapMap);

				mapMap.addChild(createMapEntry("login.username", "admin"));
				mapMap.addChild(createMapEntry("login.password", "ofbiz"));
				mapMap.addChild(createMapEntry("emailList", "111@126.com"));
				mapMap.addChild(createMapEntry("emailSubject", "123"));
				mapMap.addChild(createMapEntry("emailContent", "456"));
				mapMap.addChild(createMapEntry("sentDate", "2012-03-11"));
				mapMap.addChild(createMapEntry("sentDateHour", "12"));
				mapMap.addChild(createMapEntry("sentDateMin", "07"));
			} catch (Exception e) {
				e.printStackTrace();
			}

	        return SendEmail;
	     }

	     private static OMElement createMapEntry(String key, String val) {

	        OMElement mapEntry = fac.createOMElement("map-Entry", omNs);

	        // create the key
	        OMElement mapKey = fac.createOMElement("map-Key", omNs);
	        OMElement keyElement = fac.createOMElement("std-String", omNs);
	        OMAttribute keyAttribute = fac.createOMAttribute("value", null, key);

	        mapKey.addChild(keyElement);
	        keyElement.addAttribute(keyAttribute);

	        // create the value
	        OMElement mapValue = fac.createOMElement("map-Value", omNs);
	        OMElement valElement = fac.createOMElement("std-String", omNs);
	        OMAttribute valAttribute = fac.createOMAttribute("value", null, val);

	        mapValue.addChild(valElement);
	        valElement.addAttribute(valAttribute);

	        // attach to map-Entry
	        mapEntry.addChild(mapKey);
	        mapEntry.addChild(mapValue);

	        return mapEntry;
	     }

}

 

测试结果如下,在控制台代码为:

 

Sent Hello, got : <SendEmailResponse xmlns="http://ofbiz.apache.org/service/"><map-Map>
        <map-Entry>
            <map-Key>
                <std-String value="responseMessage"></std-String>
            </map-Key>
            <map-Value>
                <std-String value="success"></std-String>
            </map-Value>
        </map-Entry>
    </map-Map></SendEmailResponse>

转载于:https://my.oschina.net/Delele/blog/48594

本 PPT 介绍了制药厂房中供配电系统的总体概念与设计要点,内容包括: 洁净厂房的特点及其对供配电系统的特殊要求; 供配电设计的一般原则与依据的国家/行业标准; 从上级电网到工厂变电所、终端配电的总体结构与模块化设计思路; 供配电范围:动力配电、照明、通讯、接地、防雷与消防等; 动力配电中电压等级、接地系统形式(如 TN-S)、负荷等级与可靠性、UPS 配置等; 照明的电源方式、光源选择、安装方式、应急与备用照明要求; 通讯系统、监控系统在生产管理与消防中的作用; 接地与等电位连接、防雷等级与防雷措施; 消防设施及其专用供电(消防泵、排烟风机、消防控制室、应急照明等); 常见高压柜、动力柜、照明箱等配电设备案例及部分设计图纸示意; 公司已完成的典型项目案例。 1. 工程背景与总体框架 所属领域:制药厂房工程的公用工程系统,其中本 PPT 聚焦于供配电系统。 放在整个公用工程中的位置:与给排水、纯化水/注射用水、气体与热力、暖通空调、自动化控制等系统并列。 2. Part 01 供配电概述 2.1 洁净厂房的特点 空间密闭,结构复杂、走向曲折; 单相设备、仪器种类多,工艺设备昂贵、精密; 装修材料与工艺材料种类多,对尘埃、静电等更敏感。 这些特点决定了:供配电系统要安全可靠、减少积尘、便于清洁和维护。 2.2 供配电总则 供配电设计应满足: 可靠、经济、适用; 保障人身与财产安全; 便于安装与维护; 采用技术先进的设备与方案。 2.3 设计依据与规范 引用了大量俄语标准(ГОСТ、СНиП、SanPiN 等)以及国家、行业和地方规范,作为设计的法规基础文件,包括: 电气设备、接线、接地、电气安全; 建筑物电气装置、照明标准; 卫生与安全相关规范等。 3. Part 02 供配电总览 从电源系统整体结构进行总览: 上级:地方电网; 工厂变电所(10kV 配电装置、变压
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值