Hprose for Java 服务器(一)
直接使用HproseServlet发布服务
因为在快速入门里面我们已经详细通过图解方式介绍了通过直接使用HproseServlet发布服务的整个过程,这里就不再通过图解方式介绍了,下面我们更多关注的是代码部分。
通过HproseServlet发布服务很简单,直接通过配置方式就可以,如果要发布的类是现成的,您不需要编写一行代码就可以完成发布。
发布的方法可以是静态方法,也可以是实例方法。但必须是public方法。您还可以同时发布多个类中的方法。下面先介绍如何发布类中的实例方法。
发布实例方法
在前面快速入门一章里,您已经看过传输简单类型的例子了。所以下面将以传输复杂类型为例,来介绍发布多个类中的实例方法,其中还包括了继承、覆盖、重载方法发布等内容。
先来看第一个类:
现在就配置好了对hprose.exam.Exam2的发布,但是运行结果可能会出乎您的预料,当您打开浏览器浏览服务页面时,您会发现只有getUserList这一个方法被发布了,从Exam1中继承来的方法都没有被发布,这是正确的吗?
是的,这是正确的,这是因为所有的类都是从祖先类Object继承下来的,如果将继承来的public方法都发布的话,势必会将从Object继承来的方法也一起发布,这肯定不是用户所期望的结果。另一个原因,用户定义的类的层次可能比较深,而其定义的基类上的方法可能并不想被一起发布。因此,默认情况下,只发布直接在该类中声明的public方法,而不会发布继承来的方法。
那如果想发布继承来的方法可以吗?当然可以。您可以这样发布。将上面配置文件中:Fa7{s7"ex1_sum"s19"ex1_swapkeyandvalue"s15"ex2_getuserlist"s7"ex2_sum"s9"ex1_getid"s9"ex2_getid"s19"ex2_swapkeyandvalue"}z
这就表示服务发布成功了。