浏览 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类,要在这个类里面创建一个无参构造函数,当然你可以选择什么都不做(即不自己手动写有参的构造函数,否则你需要写两个,有参和无参的) 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |