小试Netbeans6.5中的“web应用程序的JavaMe客户端”

 久没有写博客了,这几天心情也不太好,无心做事,码点文字吧。

从Eclipse换到Netbeans,是反复折腾了几回的,总在它们之间徘徊不定,不说也罢。谈谈Netbeans里的“Web应用程序的Java Me客户端”。(不好意思,因为我用的是Netbeans6.5中文版,那个7.0M1的bug太多,又卸掉了)。

这个功能基本可以取代webservice了,毕竟很多的终端还是不支持JSR 172的。
其实它也就是一个基于HTTP协议实现远程方法调用的代码模板,你完全可以自己实现,只是Netbeans给了你极大的方便。


也谈谈使用吧。
一般建议,先创建一个web应用程序,然后配好它的DataSource等资源。


为它创建一个类,名称随便起,我就拿原来的webservice的类来弄的,叫NewsService 吧。
它负责封装所需的业务逻辑,暴露出供远程调用的方法。

实在没有什么特别的东西,你想怎么弄就怎么弄好了。

然后创建你的客户端项目,一个Java Me的工程,然后在项目窗口中点它的右键菜单中就有那个“新建-Web应用程序的Java Me客户端”,跟着向导,基本上就OK了。

第一步是配置接口servlet,用来实现客户端与服务端的通讯,也就是说它负责接收客户端的请求,并调用上面的那个NewsService类完成相应操作,然后回复给客户端。

第二步是选择真正完成业务逻辑的类,即上面那个NewsService,选择它包含的哪些方法要提供给远程Java Me客户端来调用。

第三步是配置一个客户端的代码,一个Client类,它负责封装远程的方法,实现将本地方法调用转换成Http的请求,并将服务器的响应转换成方法的返回值。

Netbeans会自动生成一堆代码,就OK了。

来看看生成的代码,先看服务器端的:

除了那个接口Servlet以外,还有两个辅助类Utility.java JavonGateway.java和一个接口 InvocationAbstraction.java。
从servlet开始看起,它的doPost,从请求中按byte流读进来,invokeMethod对应的方法。

Utility类负责参数与结果的读写操作。而JavonGateway则是各个远程方法的代理封装。

再看客户端的代码,一个WebToMobileClient.java以及一个WebToMobileClient.wsclient的描述文件。

WebToMobileClient除了实现了几个与远程方法同名的方法以外,它的核心在于那个invokeServer,负责将本地调用转换成byte流,通过POST发送到服务器上的WebToMobileServlet。


使用这个Web应用客户端的功能,只有一点要注意的:就是返回值尽量不使用自定义类。我试了,发现如果返回值是自定义类型,还需要自己为这个类来修改utility的代码,否则它不会自动序列化你自定义的类,可是代码上又明明白白的写着, This file is generated. Please do not change,矛盾啊!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值