Service Builder

用Borland C++Builder 6.0开发简单的多线程Web Service客户程序   Borland最新推出的C++Builder 6.0(以下简称BCB)和Delphi/Kylix一样,有着强大的Web  Service处理能力,但现在关于如何用BCB创建和调用Web Service的资料并不多,现在我就示范一下如何使用BCB6.0实现一个简单的Web Service客户端,而且在我的例子中使用的是多线程的调用方式。由于自己使用BCB的时间非常短,开发经验还不足,所以本文 阅读详情

一、什么是Service Builder?

Service Builder是Liferay IDE(SDK)提供的一种代码生成方案,开发人员只需要编辑一个数据库的实体描述文件,即可根据本XML文件生成Spring层代码、Hibernate层代码、SQL、SQL索引创建文件、Spring和hibernate的配置文件等,可以大提高开发人员的效率。简单说就是根据数据库描述文件,生成service层和持久化层的代码,开发人员只需要关注控制层即可。

二、Service Builder的使用

1、首先需要有一个Portlet的插件工程,创建方法,参考http://www.huqiwen.com/2012/09/01/liferay-6-1-development-studey-2-create-portlet-project/

2、打开Liferay IDE,点击工具栏中Liferay工具的中间按钮,New Liferay Service Builder,弹出的向导如下,填写相关信息,点击完成。

Liferay Buider

Plugin Project:将用于哪个工程,如果有多个工程,请看仔细。

Service file:数据库描述文件的文件名,使用向导不可更改(可以手动改,后面详述)

Package path:包名路径,这里是定义基础的包名路径,建议一般规则为:公司域名+portlet+功能模块名

Namespace:命名空间,如果数据库名有冲突,会启用命名空间,大部分情况下用处不大。

Author:作者名,默认读取系统变量。

Include sample entiry in new file:在自动生成的xml文件中是否包含示例,如果是新手,建议打勾。

3、编辑service.xml文件。在liferay IDE里面提供了service的开视化编辑。简单介绍一下主要属性的含义。

service XML文件

Name:实例名称,就是通常的JavaBean的名称。

Local Service:本地服务,一般选中。

Remote Service:远程服务,用于为生成Web Service做支持,如果不需要不要选中。

Human Name:人性化名称。一般留空即可,此处的名字用于生成文档时使用,如果留空使用Name。

Table:数据库名称,如果不填写,使用Name。

Uuid:是否生成一个uuid的字段,具体的根据数据库设计情况而定。可以使用也可以不使用。推荐使用。

Uuid accessor:是否使用uuid存取实体,根据情况而定。可以使用也可以不使用。推荐使用。

Persistence Class:持久化类的名称,推荐留空,让自动生成。

Data source:数据源,一般留空。。

Session Factory:数据库会话工厂,一般留空。

TX Manager:事务管理,一般留空。

Cache enabled:开启缓存,推荐选中。

JSON enabled:开启JSON,生成的代码中包含实体的JSON序列化和反序列化,根据情况而定。如果不使用JSON,请不要勾选。

4、在Columns里面添加字段,填写字段名称,类型等。如果要使用特殊的数据库名称,或者字段有其他需求,请点开Columns,在下面逐个字段上修改。Db Name对应的为数据库的字段名称,其他一般留空即可。

5、Order,查询结果根据哪个字段排序列。

6、Finders:查询方法。service builder默认会生成基本的增删改查方法,如果有一些根据字段查询某些数据,返回的可以是一个实体也可以是一个List。

<finder name="userId" return-type="user">
      <finder-column name="userId" />
 </finder>

这个的意思是生成一个方法叫findyByUserId的方法,传入的参数是userId,返回的类型是User。(这个例子只是为说明,一般如果userId是主键,service builder生成的方法里面,不写此finder,已经包含此方法)

finder-column这里可以填写多个参数,return-type,如果是Collection则返回类型是List。

Finders方法,可以根据实际情况进行填写,对于使用finders仍不能满足的方法,后面详解。

7、点击ant里面servicer-builder按钮,等待Liferay进行代码生成。或者将可视化编辑器切换到Diagram,点击右键,service builder。

三、Service Builder的使用。

如果是第一次使用Service Builder,请按如下步骤操作。

1、WEB-INF目录下面找到service目录,点击右键Build Path-->Use as Source Folder。service包里面主要包括生成的代码里面的接口方法,方便我们进行跨工程的代码调用。src里面都 实现包。

2、Service Builder的使用,一般有两种方法。一种是获取一个Service。

CmsArticleLocalService cmsArticleServie = CmsArticleLocalServiceUtil.getService();

然后使用此xxService调用相关方法

一种是直接使用xxLocalServiceUtil调用相关方法。大部分情况下使用xxLocalServiceUtil进行方法调用。

3、创建一个modle实例一般使用如,xxLocalServiceUtil.createXX()方法。

四、自定义方法

虽然liferay自动生成的代码里面包含了常用方法,足以应付一般场景,但是有些特殊场景需要一些特殊的方法,如何添加自定义方法呢?

1、找到src下面和此service builder相关的的xxx.service.impl包,找到xxxLocalServiceImpl的文件,打开在此类里添加相关的自定义方法。

2、如果是要为modle添加自定义方法,请在xxx.modle.impl包里面的,xxImpl文件里面添加自定义方法。

3、修改完成后,再次执行Service Builder,会将这些方法自动的添加到其他相关接口、类里面。Liferay的Service Builder方法一般只允许修改上述两个类,其他的类一般不要修改,因为修改后如果再次执行service builder会被覆盖掉。

五、修改字段长度

Liferay自动生成的代,如String字段,默认长度是75。如果有特殊的需求,可以在src/META-INF/portlet-model-hints.xml里面修改相应的字段映射长度。找到相应的实体,字段,如下:

<field name="InfoId" type="String" >
 <hint name="max-length">300</hint>
 </field>

这样就可以将InfoId的数据库字段长度定义为300。修改完成重新执行service-builder进行文件生成。

六、其他技巧

1、一个service.xml文件里面可以有多个实体名。

2、如果要建立多个service.xml文件,可以在WEB-IN目录下面建立一个文件夹,比如叫service-builder用来存储service.xml文件,不同的service.xml执行不同的命名,如User-Service.xml等。手动建立,不必使用向导。

3、如果按照步骤2操作,有多个service.xml文件,则不能执行ant里面的service-builder文件,因为ant只会寻找web-inf目录下面的services.xml文件。所以要在xx-service.xml文件里面切换到Diagram编辑模式,点击右键,build Service,这样会对当前XML文件进行构建。

4、即使使用了2、3的方法,也不要删除web-inf目录下面的service.xml文件,可以保留一份,不然最终部署后的web.xml描述文件里会少生成一些内容,导致插件工程不能正常运行。

5、同一个插件工程中,不同的xx-services.xml文件必须使用不同的包名,一个services.xml里面可以有多个实体,但不同的services.xml里面必须使用不同的包名,否则会导致生成的的spring配置文件出现覆盖情况。

转载: http://www.huqiwen.com/2012/09/11/liferay-6-1-development-study-4-service-builder/

注:service builder中如何新加方法
在*LocalServiceImpl.java中添加后,service.xml重新build

SAP Gateway Service Builder 里 Project 的概念 简而言之,ServiceBuilder迎合了所有级别的开发经验,并提供了在不影响质量的情况下,节省时间和提高效率的开发方法。因此,项目为开发人员提供了随时中断服务开发和建模过程的自由,而不必担心运行时工件和丢失数据的风险。在项目中组织服务开发和建模过程的优势在于,整个项目数据可以在系统之间轻松传输,以实现最大效率和重用。SAPGatewayServiceBuilder支持不同的开发方法和生命周期,以提供最大的灵活性,以满足不断变化的开发先决条件并满足不同的需求。如果SAP系统具有。... 阅读详情

相关推荐

SAP Gateway Service Builder:从概念、实践到最佳实践的全景解析(含 V2 与 V4 取舍建议)

摘要:本文针对ABAP开发者深入解析SAP Gateway的Service Builder(SEGW)工具。文章系统介绍了SEGW在OData服务全生命周期中的定位与功能,包括数据模型定义、服务实现和维护三大阶段,并通过图书清单服务案例演示了从建模到发布的全过程。特别指出对于OData V2项目,SEGW仍是高效工具;而对于OData V4项目,则推荐采用ADT代码化方式开发。文章提供了技术参考链接和实现示例,为开发者提供了实用指导。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 278

8.GRPC C++源码阅读 异步服务器

更多相关文章 www.anger6.com 还是通过官方的例子来讲述: grpc/src/examples/cpp/helloworld/greeter_async_server.cc: main函数很简单 int main(int argc, char** argv) { ServerImpl server; server.Run(); return 0; } ServerImpl...

happyAnger6的专栏 1765

liferay-service-builder_6_2_0

liferay-service-builder_6_2_0

GRPC server启动流程简单梳理

GRPC server启动流程简单梳理 一、rpc和grpc 1、rpc (remote procedure call) : 使得应用程序之间可以进行通信,而且也遵从server/client模型。使用的时候客户端调用server端提供的接口就像是调用本地的函数一样. 2、grpc : google提供的rpc框架 grpc 通信结构图如下: grpc 和 restful API 比较 ①:grpc可以通过protobuf定义接口,可以有更加严格的接口约束 ②:protobuf 通过二进制传输,提高传输效

why154285的博客 5196

【BUAA】【计组】计算机组成 pre (含详细解析)

BUAA 计算机组成 本文章旨在为@走肖暂时无法接通的系列文章创造一个目录,收藏本文章,方便查阅! 1. 入门测试 2. 基础知识 3. Logisim   欢迎来到 Logisim 的世界   Logisim 门电路   Logisim 组合电路   Logisim 时序电路   Logisim 仿真与调试   应用与挑战 4. Verilog 与仿真工具   前言   ISE 入门   VCS 入门   Verilog 语法   Verilog 题目实例与分析   Verilog 工程的设计开发调试

Schrodinger007的博客 9806

halcon 检测直线

图中后三个对象既是检测出的图像;

qq_59062726的博客 665

Liferay 6.1开发学习(四):Service Builder【转】

一、什么是Service Builder? Service Builder是Liferay IDE(SDK)提供的一种代码生成方案,开发人员只需要编辑一个数据库的实体描述文件,即可根据本XML文件生成Spring层代码、Hibernate层代码、SQL、SQL索引创建文件、Sprin...

241

FA 新增资产API Demo

DECLARE l_trans_rec fa_api_types.trans_rec_type; l_dist_trans_rec fa_api_types.trans_rec_type; l_asset_hdr_rec fa_api_types.asset_hdr_rec_type; l_asset_desc_rec fa_a

chosen1brain的专栏 2142

PO系列之 Integration Builder集成生成器中的Party伙伴功能

一 前言 PO(/PI)是SAP公司的一个中间件产品,用来辅助连接SAP系统与外围系统. (当然外围系统之间也可以使用PO). 一般情况下,异步接口推荐使用PO来确保数据正确抵达目标系统. PO通过企业服务生成器Enterprise Services Builder定义接口内容 PO通过集成生成器Integration Builder定义接口传递方式 本文主要介绍在集成生成器Integration Builder中的伙伴Party的应用 (阅读文本假定你大致了解PO的接口配置) ..

weixin_42646630的博客 611

Telegram Bot Api使用教程

其中token为你的机器人token,method为telegram给定的方法,在获取群组chat_id那一步就使用了telegram的其中一个方法(getUpdates),其他方法后面会介绍。telegram发送消息的方式类似与钉钉机器人,都是向一个api发送http请求,而且对于同一个APItelegram支持GET和POST两种请求方式.请求的api格式如下。通常来说我们都需要让机器人在一个群组里工作,所以首先我们需要将机器人添加到我们指定的群组,在群组里发送随意消息并@这个机器人,比如...

豫迷糊的码上生活 1万+

保姆级教程:用Python脚本一键把选股结果导入通达信自选股(附完整代码)

本文提供了一份详细的Python自动化教程,教你如何将选股结果一键导入通达信自选股。通过解析通达信文件结构、编写Python脚本实现股票代码转换和批量导入,大幅提升量化交易效率。教程包含完整代码示例,特别适合使用通达信(TDX)的投资者和量化交易开发者。

weixin_30915951的博客 358

使用builder安装enterprise的注意事项

1.安装过程中不要操作文件系统!!不然会出现安装失败的情况,不是门户没安装成功就是其他部分没安装成功。安装步骤: http://zhihu.esrichina.com.cn/article/3245 2.用builder安装,sever和portal的用户名密码还有安装路径都是相同的。 3.疑问:GA的功能不能覆盖到所有gissever的功能呀,那我装吧gisSever直接授权为GA原来的gi...

miaowumi92的博客 323

QCC308x/3095收发一体:TX/RX双模一拖二与多编码广播实战解析

本文深度解析高通QCC308x/3095蓝牙音频芯片的TX/RX双模功能与广播应用。芯片支持发射和接收模式下的“一拖二”连接,并能实现LE Audio多设备广播,显著提升多设备音频切换体验与商业广播能力,适用于健身、导览等丰富场景。

g9h0i1的博客 1003

用C++Builder在WINNT下编制一个Service

  ---- Windows NT与Windows 9x有一个非常重要的区别,即Windows         NT提供了很多功能强大的Service(服务)。这些Service可以随着NT的启动而自启动,也可以让用户通过控制面板启动,还可以被Win32应用程序起停。甚至在没有用户登录系统的情况下,这些Service也能执行。许多FTP、WWW服务器和数据库就是以Service的形式存在于NT上,

fleamboy的专栏 1025

维纳滤波和卡尔曼滤波

本文的主要内容是维纳滤波和卡尔曼滤波的介绍,包含匹配滤波器、维纳滤波器、维纳预测、卡尔曼滤波等内容。

西岸贤 9518

SOMEIP协议--第三节[SOMEIP/SD](SD格式)

Entry和Option是SD报文中最重要的内容,是服务发现功能的承载。7.Minor Version是指当前服务的小版本号,可以配置,用于给用户区分当前服务的版本用的。注意:stop offer,stop subscribe,Subscribe Nack 这三条的TTL一定设为0,唯一和offer,subscribe,Subscribe的区别。Option用来辅助Entry实现其功能,是Entry携带的附加信息,作用上一般是用来告诉对端自己业务的ip和port信息,方便对端通过ip和port发送报文。

qq_41816308的博客 1338

liferay -- service builder

jameskaron的专栏 109

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

如何在liferay 7 mvc-portlet中调用service-builder项目生成的service

不想写了,贴大神帖子 https://web.liferay.com/web/zhao.jin/blog/-/blogs/creating-service-builder-mvc-portlet-in-liferay-7-with-liferay-ide-3- 转载于:https://www.cnblogs.com/hibou/p/6833524.html...

weixin_30477797的博客 166

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

使用Liferay IDE 3.0创建支持Service Builder的portlet module

转载博客,现在Liferay的中文的资料太少了。 原文地址:https://web.liferay.com/web/zhao.jin/blog/-/blogs/%E4%BD%BF%E7%94%A8liferay-ide-3-0%E5%88%9B%E5%BB%BA%E6%94%AF%E6%8C%81service-builder%E7%9A%84portlet-module

一头大蒜 1405

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

liferay Service Builder

一、什么是Service Builder? Service Builder是Liferay IDE(SDK)提供的一种代码生成方案,开发人员只需要编辑一个数据库的实体描述文件,即可根据本XML文件生成Spring层代码、Hibernate层代码、SQL、SQL索引创建文件、Spring和hibernate的配置文件等,可以大提高开发人员的效率。简单说就是根据数据库描述文件...

159

Liferay:Service Builder的DTD内容

<br /><!--<br /> This is the DTD for the Service Builder parameters for Liferay Portal.<br /><br /> <!DOCTYPE service-builder PUBLIC<br />     "-//Liferay//DTD Service Builder 6.0.0//EN"<br />     "http://www.liferay.com/dtd/liferay-service-builder_6_0

步行者的专栏 2123

Service Builder entity relationship

When we use Service Builder, we might create relationships between entities. Our demand is that Service Builder could create relationships between entities for us. But that's just our dream. Actually

smile_juan 1053

用C++Builder在WINNT下编制一个Service (转)

用C++Builder在WINNT下编制一个Service (转)[@more@] ---- windows NT与Windows 9x有一个非常重要的区别,即Windows NT提供了很多功能强大的Service(服务)...

ciya3282的博客 136
上一篇: liferay UI
下一篇: 数据库的连接
facepp
博客等级 码龄22年 342粉丝 638原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值