【发布时间】:2011-08-19 17:35:13
【问题描述】:
我注意到 BlazeDS 有一些它不支持的东西,而且通常很难找到它。例如:多态性不是。必须创建具有不同名称的方法,因为具有不同参数的相同名称的方法会产生冲突。
我正在尝试找出 BlazeDS 是否不支持 Java 静态和非静态内部类。 指出问题的示例的详细信息:
public class UserDTO {
private String name;
private AddressDTO adddress;
private PhoneDTO phone;
....
public static class PhoneDTO {
private String phoneNumber;
.....
}
public class AddressDTO {
private String address;
.....
}
此代码在通过 BlazeDS 将数据传递给 Flex 时似乎可以正常工作,但在通过 BlazeDS 将数据从 Flex 传递回 Java 时会导致错误。
@Service
@RemotingDestination(channels = { "my-amf" }, value = "UserService")
public class UserService {
....
public UserDTO getUser(Long userID) {
.....
return userDTO;
}
public void updateUser(UserDTO userDTO) {
....
}
public void updatePhone(PhoneDTO phoneDTO) {
.....
}
上面的示例代码将编译并且 getUser 方法将起作用。另一方面,调用 updateUser 或 updatePhone 方法会导致 BlazeDS 错误。是否有特殊的方法可以在 Flex 中使用内部类或不支持内部类?
以下是产生的错误消息的示例:
[BlazeDS]Cannot create class of type 'com.test.dto.UserDTO.PhoneDTO'.
flex.messaging.MessageException: Cannot create class of type 'com.test.dto.UserDTO.PhoneDTO'. Type 'com.test.dto.UserDTO.PhoneDTO' not found.
示例 Flex 代码:
var thisPhone:PhoneDTO = new PhoneDTO();
thisPhone.phoneNumber = "8885551212";
updateTagsResult.token = userService.updatePhone(thisPhone);
【问题讨论】:
标签: java apache-flex blazeds dto