Hprose for Java 服务器(一)

直接使用HproseServlet发布服务 因为在快速入门里面我们已经详细通过图解方式介绍了通过直接使用HproseServlet发布服务的整个过程,这里就不再通过图解方式介绍了,下面我们更多关注的是代码部分。 通过HproseServlet发布服务很简单,直接通过配置方式就可以,如果要发布的类是现成的,您不需要编写一行代码就可以完成发布。 发布的方法可以是静态方法,也可以是实例方法。但必须是 ...
by andot 2011-06-01 浏览 (908) 回复 (0) 群组: phprpc/hprose

Hprose for Java 服务器(二)

隐藏发布列表 发布列表的作用相当于Web Service的WSDL,与WSDL不同的是,Hprose的发布列表仅包含方法名,而不包含方法参数列表,返回结果类型,调用接口描述,数据类型描述等信息。这是因为Hprose是支持弱类型动态语言调用的,因此参数个数,参数类型,结果类型在发布期是不确定的,在调用期才会确定。所以,Hprose与Web Service相比无论是服务的发布还是客户端的调用都更加灵活 ...
by andot 2011-06-01 浏览 (694) 回复 (0) 群组: phprpc/hprose

Hprose for Java 服务器(三)

自己编写Servlet发布Hprose服务 如果您对直接使用HproseServlet发布服务还有什么不满的话,当然可以自己编写一个Servlet来发布Hprose服务。而且您会发现这并不是什么难事,因为Hprose已经为您提供了很好的基础,您只需要对HproseServlet做一下扩展,或者直接使用HproseHttpService来构建自己的Servlet即可。 扩展HproseServle ...
by andot 2011-06-01 浏览 (1291) 回复 (0) 群组: phprpc/hprose

Hprose for Java客户端(一)

同步调用 Hprose客户端在与服务器通讯时,分同步调用和异步调用两种方式。同步调用的概念和用法相对简单一些,所有我们先来介绍同步调用方式。 在同步调用方式下,如果服务器执行出错,或者通讯过程中出现问题(例如连接中断,或者调用的服务器不存在等),则客户端会抛出异常。 直接使用HproseHttpClient上的invoke方法或者采用代理接口方式都可以进行同步调用,但是只有通过invoke方法 ...
by andot 2011-06-01 浏览 (1174) 回复 (2) 群组: phprpc/hprose

Hprose for Java客户端(二)

通过代理接口进行同步调用 看完通过invoke进行同步调用的方式后,再来看一下通过接口进行同步调用的方式。通过接口方式进行同步调用更加直观,方便,但是不支持动态调用和引用参数传递。 接口定义 为了调用上面的方法,我们需要先定义接口,下面是接口的定义: package hprose.exam; import java.util.List; import java.util.Map; public ...
by andot 2011-06-01 浏览 (913) 回复 (0) 群组: phprpc/hprose

Hprose for Java客户端(三)

异步调用 下面我们来开始另一个重要的话题,那就是异步调用。 异步调用相对于同步调用来说确实要难以掌握一些,但是在很多情况下我们却很需要它。那究竟什么时候我们需要使用异步调用呢? 很多时候我们并不确定在进行远程调用时是否能够立即得到返回结果,因为可能由于带宽问题或者服务器本身需要对此调用进行长时间计算而不能马上返回结果给客户端。这种情况下,如果使用同步远程调用,客户端执行该调用的线程将被阻塞,并 ...
by andot 2011-06-01 浏览 (771) 回复 (0) 群组: phprpc/hprose

Hprose for Java客户端(四)

异常处理 同步调用异常处理 同步调用下的发生的异常将被直接抛出,使用try...catch语句块即可捕获异常,通常服务器端调用返回的异常是HproseException类型。而如果通讯发生错误,一般为IOException类型。但是在调用过程中也可能抛出其它类型的异常,为了保险,您可以使用catch捕获Throwable类型来处理全部可能发生的异常。 另外,如果您采用代理接口方式调用,需要注意 ...
by andot 2011-06-01 浏览 (874) 回复 (0) 群组: phprpc/hprose

Hprose 简介

Hprose 是什么? Hprose使您能高效便捷的创建功能强大的跨平台、跨语言、分布式的应用。如果您刚接触网络编程,您会发现用Hprose来实现分布式系统易学易用。如果您是一位有经验的程序员,您会发现它是一个功能强大的通讯协议和开发包。有了它,您在任何情况下,都能在更短的时间内完成更多的工作。 Hprose是PHPRPC的商业化版本,它除了拥有PHPRPC的各种优点之外,它还具有更多自己的特别 ...
by andot 2011-06-01 浏览 (1672) 回复 (2) 群组: phprpc/hprose

Hprose for PHP 快速入门

安装Hprose for PHP Hprose for PHP对硬件和操作系统需求如下: 客户端需求 安装有5.0或更高版本PHP的硬件和操作系统。 服务器需求 安装有5.0或更高版本PHP的硬件和操作系统。 Apache、IIS、lighttpd、nginx或其它任何一款可以运行PHP的Web服务器。 安装方法 直接将Hprose for PHP的所有文件(hproseCommon ...
by andot 2011-06-01 浏览 (7112) 回复 (1) 群组: phprpc/hprose

Hprose for PHP类型映射

基本类型 值类型 类型 描述整型 Hprose中的整型为32位有符号整型数,表示范围是-2147483648~2147483647(-231~231-1)。长整型 Hprose中的长整型为有符号无限长整型数,表示范围仅跟内存容量有关。浮点型 Hprose中的浮点型为双精度浮点型数。非数 Hprose中的非数表示浮点型数中的非数(NaN)。无穷大 Hprose中的无穷大表示浮点型数中的正负无穷大数 ...
by andot 2011-06-01 浏览 (1614) 回复 (2) 群组: phprpc/hprose

Hprose for PHP 服务器(一)

发布服务 Hprose提供了多种方法发布服务,除了提供了跟PHPRPC中相同的add方法以外,还提供了更多方便的方法。 发布函数 在快速入门一章中,我们已经在Hello服务器的例子中看到过如何发布一个函数了,这里我们主要谈一下哪些函数可以作为Hprose服务发布。 实际上大部分函数都是可以作为Hprose服务发布的,甚至包括PHP中的内置的函数。但如果参数或结果中包含有资源类型(比如mysq ...
by andot 2011-06-01 浏览 (1400) 回复 (0) 群组: phprpc/hprose

Hprose for PHP 服务器(二)

服务器开关 隐藏发布列表 发布列表的作用相当于Web Service的WSDL,与WSDL不同的是,Hprose的发布列表仅包含方法名,而不包含方法参数列表,返回结果类型,调用接口描述,数据类型描述等信息。这是因为Hprose是支持弱类型动态语言调用的,因此参数个数,参数类型,结果类型在发布期是不确定的,在调用期才会确定。所以,Hprose与Web Service相比无论是服务的发布还是客户端的 ...
by andot 2011-06-01 浏览 (994) 回复 (0) 群组: phprpc/hprose

Hprose for PHP 客户端(一)

直接通过远程方法名进行远程调用 在快速入门一章中,我们已经见识过这种方式的调用了,这里再来具一个例子来进行说明: <?php include("hprose/hproseHttpClient.php"); $client = new HproseHttpClient("http://www.hprose.com/example/"); echo &qu ...
by andot 2011-06-01 浏览 (1258) 回复 (0) 群组: phprpc/hprose

1-使用web.xml配置Struts2实现Web项目Struts2应用

在现在开发的Web项目中,大家都是使用web.xml来实现MVC框架的应用。既然Struts2也属于MVC框架,因此在web.xml中必定要配置Struts2用以实现应用。 技术要点 本节代码说明Struts2基本配置。 如何加载FilterDispatcher过滤器。 如何使用FilterDispatcher过滤器拦截URL。 演示代码 <!----------------文件名 ...
by ITeye管理员 2011-06-01 浏览 (10357) 回复 (4) 群组: struts2

2-使用配置文件struts.xml实现页面导航定义

Struts2中最核心的是Action,而Action的核心就是struts.xml,struts.xml集中了所有页面的导航定义。对于大型的 Web项目,通过此配置文件即可迅速把握其脉络,这不管是对于前期的开发,还是后期的维护或升级都是大有裨益的。掌握struts.xml是掌握 Struts2的关键所在。 技术要点 本节代码向读者演示struts.xml内容的组成部分 XML文件字符编码定义和DT ...
by ITeye管理员 2011-06-01 浏览 (6136) 回复 (3) 群组: struts2

3-使用Action类控制导航业务数据

Struts2中Action充当着一个关键的角色。它解决了如何把JSP页面上的数据根据实际开发项目中具体的业务逻辑来进行处理的问题。 技术要点 本节代码使用登录功能作为例子,详细解析LoginAction类。 如何使用Execute方法处理业务逻辑。 如何处理Form表单数据。 HTTP的session对象在Action主要使用方式。 ActionMapping对象配置文件中处理流程。 演示代码 ...
by ITeye管理员 2011-06-01 浏览 (3249) 回复 (1) 群组: struts2

4-使用ActionSupport进行校验

如果From数据操作有误,比如输入不是我们需要的数据,又或者没有输入等输入原因。Action实例执行execute方法前会使用校验来进行控制。本节就是介绍如何在Struts2中实现校验功能。 技术要点 本节代码中还是使用登录功能作为示例 Action类中ActionSupport使用以及validate方法重写实现。 属性文件messageResource.properties定义以及JSP页面上错 ...
by ITeye管理员 2011-06-01 浏览 (4391) 回复 (6) 群组: struts2

5-拦截器在Struts2中的缺省应用

通过前几章介绍,读者应该明白在Web项目中,客户先在视图界面提交一个HTTP请求,在Struts2的ServletDispatcher接收请求时,Struts2会查找配置文件,如struts.xml文件。根据xml文件中定义的拦截器配置,会去调用拦截器。如果配置了拦截器栈,则根据拦截器在拦截器栈中的前后顺序,一一进行调用。而Struts2自带的源代码中也提供了缺省的拦截器配置。 在第一章中,笔者曾经 ...
by ITeye管理员 2011-06-01 浏览 (3614) 回复 (1) 群组: struts2

6-拦截器原理实现

在了解Struts2中拦截器使用方式之前,笔者需要先向读者展示拦截器的底层实现原理是如何的。之前也说了拦截器是一个普通的Java对象,而被拦截的正常执行业务逻辑功能的类也是一个普通的Java对象,那么如何使这两个对象进行关联,并且如何知道这两个对象执行的先后顺序。 技术要点 本节代码向读者演示拦截器如何实现,介绍的知识点如下: 拦截器类和被拦截类内容。 运用反射机制调用类和类方法。 设置拦 ...
by ITeye管理员 2011-06-01 浏览 (4562) 回复 (5) 群组: struts2

谈谈软件开发的那些事儿 之 软件开发的轮回

——对软件分析设计的一次深刻反思与探讨 前言:你干软件开发多少年了?你是否开始感到困惑了、累了、算了?你是否该找一个加州旅馆好好歇一歇脚了?这篇文章也许就是你的加州旅馆,它给你解惑,反思软件开发中出现的问题,探讨解决这些问题的办法,那就是建立模型——用例模型、领域模型、分析模型和设计模型。 谈起软件开发,我在10年前就开始了。那时天是蓝的,生活是美好的,程序设计也是轻松愉快的。如果当时有 ...
by ITeye管理员 2011-06-01 浏览 (1894) 回复 (0) 群组: 设计模式

谈谈软件开发的那些事儿 之 解决之道

前面提出了软件开发的轮回:期望——破灭——崩溃——新的轮回,我们的解决之道在哪里呢? 我的反思——不在沉默中爆发,就在沉默中灭亡 反思,我在反思…… 对于来自客户的变更,我永远忘不了的是大学时老师的谆谆教导。上软件工程课的时候,老师总是一再地反复强调,一定要将需求变更消灭在需求分析阶段。按照过去的瀑布式开发理论的描述,总是要求我们在需求分析阶段了解清楚客户的所有需求,并编写成《软件需求说明书 ...
by ITeye管理员 2011-06-01 浏览 (3433) 回复 (2) 群组: 设计模式

谈谈用例模型的那些事儿 之 用例图

——对用例模型及其应用的一次有益的探讨 前言:这是一次对用例模型的探讨。怎样建立用例模型,怎样编写用例说明,它与需求规格说明书有什么区别,它能替代需求规格说明书吗?也许在这里可以找到你要的答案。 进入软件业稍微久一点儿的人恐怕都不会陌生,软件开发的最初阶段都是谈需求、写需求规格说明书。需求规格说明书是与客户最终确认到纸上的,非常正式的公文。软件开发应当做什么,做成什么样子,什么东西不做,项目范 ...
by ITeye管理员 2011-06-01 浏览 (4739) 回复 (1) 群组: 设计模式

谈谈用例模型的那些事儿 之 注意什么

前面我们讲了如何建立用例模型,那么建立用例模型应当注意什么呢? 建立用例模型应当注意的问题 给大家几个建立用例模型中常出现的问题和应对遵循的原则: 一.如何发现用例 经过以上的讲解,相信大家对建立用例模型有了一个整体的概念,然后开始着手练习绘制用例模型。这时候,一个非常严峻的问题出现了:如何发现用例。大师曾经给出了答案,大致意思就是:首先选择系统边界,然后确定主要参与者,定义满足用户目 ...
by ITeye管理员 2011-06-01 浏览 (2713) 回复 (1) 群组: 设计模式

谈谈领域模型的那些事儿 之 从领域获取知识

——对领域驱动设计的一次有益的尝试 前言:你写过用例模型吗?也许有;你写过领域模型吗?也许还没有。在这里,我们可以尝试写写领域模型,看看它的作用、带给我们的好处。 随着RUP在中国的传播,人们开始尝试用RUP统一过程来指导软件的设计和开发,但这些尝试并不成功。比较普遍的,大家都开始使用用例模型来进行需求阶段的分析和设计了。当然,能做出第一步已经非常不错了,但这远远不够。要做好需求分析,用例模型 ...
by ITeye管理员 2011-06-01 浏览 (3192) 回复 (2) 群组: 设计模式

谈谈用例模型的那些事儿 之 用例说明

前面我们讨论了如何绘制用例图,我们再看看如何编写用例说明: 二.用例说明 用例图可以直观地展现需求中的所有用例、参与者、系统边界,以及它们之间的关系,但这还不足以表达需求分析所要求表达的内容。用例图必须辅之以用例说明,才能完整清楚地表达。用例模型是需求分析阶段的主要成果,因此它担负的职责繁重。用例模型必须做到以下要求: 1、语言的互通。用例模型采用的语言必须达到,既能让业务人员看懂,以便给予业务 ...
by ITeye管理员 2011-06-01 浏览 (3830) 回复 (0) 群组: 设计模式

谈谈领域模型的那些事儿 之 注意什么

前面我们讲了如何从业务领域获取知识,创建领域模型,那么建立领域模型应当注意什么呢? 建立领域模型应当注意的问题 1.领域模型不是数据模型,也不是软件对象模型 一个创建领域模型的过程中非常容易犯的错误就是,将领域模型当成了数据模型,或者软件对象模型。领域模型,又称为概念模型、领域对象模型或分析对象模型,是“专用于解释业务领域中重要的‘事物’和产品”[RUP]。领域模型专注于现实世界的对象(概念类)而 ...
by ITeye管理员 2011-06-01 浏览 (2757) 回复 (2) 群组: 设计模式

谈谈分析模型的那些事儿 之 开始分析

——对分析模型的一点儿见解 当需求分析结束、需求确认完成、需求讨论告一段落的时候,我们的需求分析员拿出了厚厚的一打用例分析模型、领域设计模型,需求分析阶段结束,开始进入开发阶段。但是,这时候虽然需求分析阶段结束了,却千万不要以为需求分析就结束了,如果你还这样认为,说明你还没有摆脱瀑布式开发的思维。瀑布式开发的思维的关键点就是认为,需求分析阶段应当完成所有的需求分析和确认的工作,否认需求分 ...
by fangang 2011-06-01 浏览 (1815) 回复 (0) 群组: 设计模式

谈谈分析模型的那些事儿 之 职责驱动设计

分配职责和职责驱动设计 我们在开始分析模型的时候,首先要弄清楚一个非常重要的原则,就是以职责为中心。OO分析设计的核心原则之一,就是软件系统中的所有元素都必须具有高度相关的职责,也就是说,软件系统中所有的模块、包、对象类,都应当拥有一个清晰的职责,并且与它相关的所有元素(即模块中的所有包、包中的所有对象类、对象类中的所有属性和行为)都必须与这个职责具有高度的相关性。因此,分析模型的首要设计原则就 ...
by fangang 2011-06-01 浏览 (1887) 回复 (0) 群组: 设计模式

7-扩展拦截器接口的自定义拦截器配置

技术要点 本节代码介绍拦截器基础配置以及设置参数功能。 配置文件struts.xml中如何定义拦截器。 Action配置中拦截器参数定义和注意点。 拦截器参数的设置和配置修改过程。 演示代码 <!-------------------------文件名:ExampleInterceptor.java-------------> import com.opensymphony ...
by ITeye管理员 2011-06-01 浏览 (2804) 回复 (0) 群组: struts2

8-继承抽象拦截器的自定义拦截器配置

技术要点 本节代码介绍抽象拦截器配置并对缺省拦截器栈做简单介绍。 继承抽象拦截器类的自定义拦截器类编写方式。 配置文件struts.xml中如何定义缺省拦截器。 演示代码 <!----------------文件名:ExampleInterceptor.java----------------> import com.opensymphony.xwork2.ActionInvo ...
by ITeye管理员 2011-06-01 浏览 (2401) 回复 (0) 群组: struts2

企业架构知识库热门文章

最新评论

Java 是静态语言,也许在这些方面与ruby不具有可比性,不过可以用groovy和grails 是可 ...
wind13 评论了 domain model的延伸讨论
晕,这么好的帖子居然没人发表评论!
lude707 评论了 Domain Object :基于业务行为的分析
可见中国的程序员看重的都是所谓的技术,其实这个才是核心的东西
lude707 评论了 Domain Object :基于业务行为的分析
...
joeyon 评论了 Domain Object :基于业务行为的分析
领域模型建模是由业务驱动的,其使用的理论是面向对象。大家可以从完善和丰富方法论,总结一些模式。但是领域 ...
ltian 评论了 DomainModel之相互作用
"贫血"不一定真的贫,本人就是血多导致血热~~
flyfeifei66 评论了 谈一谈贫血的Domain Logic问题。
...
jiangxiaoying 评论了 OSGi Extender Model启示录
用了这种方式能够输出日志了,但是原来用common_logging的一些东西还是不输出,如ibatis ...
bergman 评论了 OpenCore:OSGi上部署Apache Common Log
...
KuXingYiSheng 评论了 域对象 & 面向对象 & 结构化编程
顶你一哈!在我看来,你说的十分正确! 设计模式说的简单点就是套路!
steadyman 评论了 如何学习设计模式
Global site tag (gtag.js) - Google Analytics