论坛首页 编程语言技术论坛

关于Flex使用Blazeds连接Java后台的一个注意笔记

浏览 3140 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-03-24  

今天在做Flex程序测试的时候,发现之前可以通过Blazeds完好的连接Java后台,可是在我添加了一些Java类中的信息之后,这个连接功能失去了作用。最后把<mx:RemoteObject>中的fault信息打印出来如下:


code: Server.ResourceUnavailable  Message: Unable to create a new instance of type 'myhotel.Room'.  Detail: Types cannot be instantiated without a public, no arguments constructor.


连接不了后台的原因在于需要被连接的Java类找不到对应的午无参构造函数。而自己之前增加的Java类中信息就是添加了一个有参的构造函数。之前之所以能够连接是我没有自己手动添加构造函数,程序自动在执行是生成无参的构造函数。解决方法就是,自己在构建一个无参的构造函数即可。


至于这样做的理由...Invoking Java methods from Adobe Flex 这篇文章也说道在作为后台的Java类,无参的构造函数是必须的,好像是在执行的时候,Blazeds要找到对应类的一个实例。也许Blazeds的调用Java函数的机制就是创建Java类的一个实例,然后再由实例调用对应需要的函数。;),个人理解。


所以当你要使用Blazeds连接java类,要在这个类里面创建一个无参构造函数,当然你可以选择什么都不做(即不自己手动写有参的构造函数,否则你需要写两个,有参和无参的)

论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics