`
anhuiqm
  • 浏览: 10478 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

如何将ofbiz的服务暴露成webservice,并且利用soapui测试

阅读更多

理解本文之前需要了解以下几个东西:

ofbiz的服务定义和实现,webservice的含义和简单理解wsdl文件,soapui的简单使用

1.首先定义一个服务,并且在服务定义中增加一个export为true的属性,这样这个服务就暴露成webservice了

<service engine="java" name="TestSoap" location="com.sunyard.cpsp.ofbiztemplate.OfbizTemplateService" invoke="testSoap"
			export="true">
		<description>这是一个暴露成webservice的服务,java实现中有利用soapui测试的详细介绍</description>
		<attribute name="attr1" mode="INOUT" type="String"></attribute>
		<attribute name="attr2" mode="INOUT" type="Map"></attribute>
		<attribute name="attr3" mode="INOUT" type="Double"></attribute>
	</service>

2.写好这个服务的实现,我们这里采用的是java

public static Map<String, Object> testSoap(DispatchContext dctx,Map<String, Object> context){
		/**介绍如何结合soapui测试这个服务*/
		/*
		 * 1.浏览器中输入http://localhost:8080/webtools/control/SOAPService?wsdl可以查看所有ofbiz暴露成webservice的服务
		 * 2.选择TestSoap浏览器地址跳转到http://localhost:8080/webtools/control/SOAPService/TestSoap?wsdl这就是TestSoap的
		 * wsdl文件
		 * 3.在soapui中建立一个工程initil WSDL填上第二点中的wsdl文件(可以直接填这个地址)
		 * 4.soapui中的第一个request中填入合法的参数数据,详情参考http://meilv.iteye.com/blog/1317112
		 */
		
		Map<String, Object> result = ServiceUtil.returnSuccess("成功运行TestSoap服务");
		result.putAll(context);
		return result;
	}

 3.按照服务实现中注释查看ofbiz为每个服务生产的wsdl文件

 为什么地址是webtools模块下面的地址?那是因为在webtools的control中有下面这样一个request,所以使用这样一个地址来暴露webservice。因为这个request中的event类型是soap,所以control中一定要引用了soap这个handler

<request-map uri="SOAPService">
        <event type="soap"/>
        <response name="error" type="none"/>
        <response name="success" type="none"/>
</request-map>

4.soapui的request中的数据格式如下。实际上就是将context中的内容用xml表示了出来。

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://ofbiz.apache.org/service/">
   <soapenv:Header/>
   <soapenv:Body>
      <ser:TestSoap>
         <map-Map>
            <!-- Map中的一个元素,其中key为String类型,value也为String类型-->
	<ser:map-Entry>
               <ser:map-Key>
                  <ser:std-String value="attr1"/>
               </ser:map-Key>
               <ser:map-Value>
                  <ser:std-String value="attr1"/>
               </ser:map-Value>
            </ser:map-Entry>
	<!-- Map中的一个元素,其中key为String类型,value也为Map类型-->   
	 <ser:map-Entry>
		<ser:map-Key>
			<ser:std-String value="attr2"/>
		</ser:map-Key>
		<ser:map-Value>
			<ser:map-Map>
				<ser:map-Entry>
               				<ser:map-Key>
                  				<ser:std-String value="attr21"/>
              				</ser:map-Key>
              				 <ser:map-Value>
                		 		 <ser:std-String value="attr21"/>
            		 		  </ser:map-Value>
           			 </ser:map-Entry>
			</ser:map-Map>
               </ser:map-Value>
	   </ser:map-Entry>
	<!-- Map中的一个元素,其中key为String类型,value也为Double类型-->
	  <ser:map-Entry>
               <ser:map-Key>
                  <ser:std-String value="attr3"/>
               </ser:map-Key>
               <ser:map-Value>
                  <ser:std-Double value="20"/>
               </ser:map-Value>
            </ser:map-Entry>
         </map-Map>
      </ser:TestSoap>
   </soapenv:Body>
</soapenv:Envelope>
  • 描述: 编写完成后点击运行的结果如图
  • 大小: 30.6 KB
分享到:
评论
1 楼 lydialmr120 2014-07-25  
这个代码有内部处理MAP吗,为什么我在SOAPUI发送MAP,服务端没有解析出来

相关推荐

    ofbiz 服务

    - 最后进行服务测试以确保表单可以正确地插入数据到数据库。 #### 第四步:优化服务 优化可能包括代码重构、性能调整等。文档未具体说明,但提到的是在开发过程中应该遵循的一些命名约定。 ### 命名约定 为了...

    ofbiz git 服务搭建

    【OFBiz Git 服务搭建详解】 OFBiz是一个开源的企业级应用框架,主要用于构建和管理电子商务系统。本教程将详细介绍如何在本地环境中搭建...现在你可以开始进行开发、测试和协作,利用Git的强大功能管理代码变更。

    Ofbiz16.11.05运行及开发环境搭建等

    在本文中,我们将深入探讨如何搭建OFBiz 16.11.05的运行及开发环境,并讨论一些关键的OFBiz功能,如百度地图集成、国际化处理、用户逻辑、PDF导出、服务调用、内容管理、MVC框架、服务引擎、多租户以及权限系统。...

    ofbiz开发手册

    OFBiz 环境搭建的正确性将直接影响到后续的开发和测试工作。 OFBiz 安装 OFBiz 安装是指将 OFBiz 下载到本地计算机中,并进行初步配置的过程。OFBiz 安装包括下载 OFBiz、安装数据库、配置应用程序服务器等步骤。...

    OFBIZ开发指南 英文2

    最后,你还将接触到OFBIZ的测试框架,了解如何编写单元测试和集成测试,确保代码的质量和系统的稳定性。 总之,《OFBIZ开发指南》是深入学习和实践OFBIZ开发的宝贵资源,无论你是初学者还是有经验的开发者,都能...

    ofbiz 入门+增删改查+实体

    本教程将带你逐步了解如何入门OFBiz,以及如何在OFBiz环境中进行基本的CRUD(创建、读取、更新、删除)操作。 首先,你需要从官方下载页面获取OFBiz的最新版本,例如12.04.02,并将其解压缩到本地文件夹,如F:\...

    ofbiz api开发文档

    本文将深入探讨OFBiz API的开发文档,帮助开发者更高效地理解和利用这一强大的工具。 1. **OFBiz API 简介** OFBiz API 是OFBiz框架的核心组成部分,它提供了丰富的接口和方法,使得开发者能够轻松地与OFBiz的各个...

    ofbiz开发文档

    它支持基于XML的定义文件来描述服务,并且可以通过SOAP、REST或JMS等不同方式暴露服务。 2. **实体引擎**:用于管理数据库中的对象,提供了一种声明式的方式来定义实体和它们之间的关系,类似于ORM(对象关系映射)...

    ofbiz开发入门总结

    4. 测试与调试:Ofbiz提供了一套完善的测试框架,包括单元测试和集成测试。你可以编写JUnit测试用例,确保你的代码正常工作。 五、进阶学习资源 Ofbiz社区提供了大量的文档和教程,包括官方的用户指南、开发者手册...

    Ofbiz 数据库全模型

    这些模型文件通常为XML格式,比如`entityengine.xml`,它们定义了数据库表的字段、类型、约束等,并且可以通过Ofbiz的数据导入导出工具进行数据迁移和备份。开发者可以根据需要修改这些模型,以适应特定的业务需求或...

    ofbiz学习笔记(自学整理)

    这将帮助你理解Ofbiz如何在数据库中存储信息,如何通过服务接口操作数据,以及如何展示这些信息给用户。 文档中提供的"新建 Microsoft Word 文档 (2).docx"和"新建 Microsoft Word 文档.docx"可能是详细的学习笔记...

    关于OFBIZ的资料

    4. **API与服务**:OfBiz提供了丰富的API接口和服务,允许开发者进行定制化开发,扩展系统功能。在Demo中,开发者可以查看这些接口的使用示例,了解如何集成外部系统。 5. **文档资料**:除了代码和演示数据,...

    Apache.OFBiz.Development

    11. 扩展和重构OFBiz:包括了将现有的BeanShell脚本转换为Java事件,以及使用了哪种扩展策略来优化OFBiz的开发。 12. 测试与备份:介绍了如何保存测试的快照点,备份Derby数据库文件和Web服务器工作文件,以便快速...

    ofbiz综合技术文档

    1、ofbiz 将其他的webservice 封装成服务,这时ofbiz的应用系统可以直接调用该服务,以访问其他的Webservice: 92 2、其他的soap客户端可以通过soap访问ofbiz,这时ofbiz相当于Webservice服务器 92 二、Soap应用例子...

    Ofbiz快速开发入门详解

    在《Ofbiz开发快速入门》中,你将了解到Ofbiz的核心概念,如实体模型(Entity)、服务(Service)和组件(Component)。实体模型是Ofbiz的基础,它定义了业务数据结构;服务则负责处理业务逻辑,是Ofbiz实现功能的...

    ofbiz数据结构设计

    《OFBiz数据结构设计详解》 OFBiz,全称为Open For Business Project,是一个开源的企业级应用框架,主要用于构建和...在实际项目中,理解并熟练运用这些设计原则,将能更好地利用OFBiz构建出高效、稳定的企业级应用。

    ofbiz开发者入门教程

    在本教程中,我们将深入探讨如何入门Apache Ofbiz的开发,这是一个开源的企业级应用框架,专为电子商务、供应链管理和企业资源规划等业务流程设计。Ofbiz提供了强大的组件化架构,使得开发者可以方便地构建和扩展...

    Ofbiz10.04改用mysql数据库配置

    《Ofbiz 10.04 迁移到 MySQL 数据库的配置详解》 Apache Ofbiz 是一款开源的企业级电子商务应用套件,它默认使用 Java 的 Derby 数据库。...正确完成这些步骤后,Ofbiz 将能充分利用 MySQL 提供的强大功能和性能优势。

    ofbiz安装与配置

    4. 普通安装:我们也可以将下载的 Ofbiz 压缩包解压到工作空间,然后按照正常的导入项目流程将解压后的 Ofbiz 项目导入 Eclipse。 Ofbiz 项目结构 在安装 Ofbiz 之后,我们可以在 Eclipse 中查看 Ofbiz 的项目结构...

Global site tag (gtag.js) - Google Analytics