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

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

今天在做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类,要在这个类里面创建一个无参构造函数,当然你可以选择什么都不做(即不自己手动写有参的构造函数,否则你需要写两个,有参和无参的)

你可能感兴趣的:(blazeds)