BlazeDS没有将Scala类转换为AMF
我是Scala和BlazeDS的新手。我正在尝试编写一个非常简单的应用程序,其中flex将调用一个名为getBook的方法,Scala服务将返回一个Book对象。没有涉及数据库。我所做的就是创建一个新的Book实例并返回它 我的问题是在Flex上没有得到有效的Book对象作为响应。我在这里包括代码 ScalaBook(scalaDemo.vo.Book.Scala) Scala服务(scalaDemo.GreetingService.Scala) 柔性侧边书本(vo.Book.as) 欢迎服务BlazeDS没有将Scala类转换为AMF,scala,blazeds,Scala,Blazeds,我是Scala和BlazeDS的新手。我正在尝试编写一个非常简单的应用程序,其中flex将调用一个名为getBook的方法,Scala服务将返回一个Book对象。没有涉及数据库。我所做的就是创建一个新的Book实例并返回它 我的问题是在Flex上没有得到有效的Book对象作为响应。我在这里包括代码 ScalaBook(scalaDemo.vo.Book.Scala) Scala服务(scalaDemo.GreetingService.Scala) 柔性侧边书本(vo.Book.as) 欢迎服务
package services
{
import mx.rpc.AsyncResponder;
import mx.rpc.AsyncToken;
import mx.rpc.remoting.RemoteObject;
public class GreetingService
{
protected var ro : RemoteObject = new RemoteObject ("greetingService");
public function sayHello (responder:AsyncResponder) : void {
var token : AsyncToken = ro.sayHello();
token.addResponder(responder);
}
public function getBook (name:String,responder:AsyncResponder) : void {
var token : AsyncToken = ro.getBook(name);
token.addResponder(responder);
}
}
}
remoting-config.xml
<destination id="greetingService">
<properties>
<source>scalaDemo.GreetingService</source>
<scope>application</scope>
</properties>
</destination>
欢迎服务
应用
我已经将scala类放在tomcat/webapps/blazeds/WEB-INF/classes下(我使用的是blazeds交钥匙服务器)
请帮帮我。好的。这就是我错的地方。对不起,布莱兹。我无缘无故地责备你 这就是我在Scala中定义Book类的方式(错误的方式) 对于BlazeDS要序列化的Scala对象,我们需要确保两件事
- 类的每个属性前面都应该有注释
@BeanProperty
- 类的每个属性都应声明为
var
scalaDemo.Book
的正确定义
package scalaDemo.vo
import scala.reflect.BeanProperty
case class Book (
@BeanProperty
var id:Long,
@BeanProperty
var name:String,
@BeanProperty
var authors:String)
Daniel C.Sorbal感谢您的关注。现在,我的下一个任务是让Hibernate与Scala对话。你得到了什么?请提供有关尝试运行时发生的情况的详细信息。它会发回一个id=Nan、authors=Null、name=Null的vo.Book对象
package services
{
import mx.rpc.AsyncResponder;
import mx.rpc.AsyncToken;
import mx.rpc.remoting.RemoteObject;
public class GreetingService
{
protected var ro : RemoteObject = new RemoteObject ("greetingService");
public function sayHello (responder:AsyncResponder) : void {
var token : AsyncToken = ro.sayHello();
token.addResponder(responder);
}
public function getBook (name:String,responder:AsyncResponder) : void {
var token : AsyncToken = ro.getBook(name);
token.addResponder(responder);
}
}
}
<destination id="greetingService">
<properties>
<source>scalaDemo.GreetingService</source>
<scope>application</scope>
</properties>
</destination>
package scalaDemo.vo
case class Book (id:Long,name:String,authors:String)
package scalaDemo.vo
import scala.reflect.BeanProperty
case class Book (
@BeanProperty
var id:Long,
@BeanProperty
var name:String,
@BeanProperty
var authors:String)