Объект значения Flex имеет нулевые свойства в Java - PullRequest
2 голосов
/ 30 июня 2011

У меня есть простой сервис, который я создал с помощью Spring-Flex 1.5. Когда я передаю данные из flex в java, в конце java объект значения становится нулевым. Я тестировал и отлаживал столько, сколько мог, и не нашел причины для этого.

Я пытался сузить возможности настолько, насколько мог. Поэтому вместо того, чтобы что-то делать с моими данными, я просто возвращаю переданный объект значения.

Я подтвердил, что могу подключиться к службе, и служба действительно возвращает данные, создав тестовый метод (String dataString) в моей службе. Этот метод возвращает правильный результат.

Это данные, которые я отправляю в Java:

(UserAccount)#0
InstanceID = 1
IsLoggedIn = false
IsVisible = false
UserID = NaN
UserName = "user123"
UserPass = "password"
UserStatus = true
UserTypeID = 1

Вот что я получаю обратно:

(UserAccount)#0
InstanceID = NaN
IsLoggedIn = false
IsVisible = false
UserID = NaN
UserName = (null)
UserPass = (null)
UserStatus = false
UserTypeID = NaN

Это вывод, который я вижу в моем файле журнала log4j

723011 ["http-bio-8080"-exec-28] DEBUG com.rottmanj.services.user.UserAccountService  - com.rottmanj.domain.user.UserAccount@5994a1e9
.

Код действия:

<fx:Script>
    <![CDATA[
        import mx.rpc.events.FaultEvent;
        import mx.rpc.events.ResultEvent;
        import mx.utils.ObjectUtil;
                    import com.rottmanj.domain.user;        

        private function sendVO():void
        {
            var vo:UserAccount = new UserAccount();
            vo.UserName = 'user123';
            vo.UserPass = 'password';
            vo.UserStatus = true;
            vo.IsLoggedIn = false;
            vo.IsVisible = false;
            vo.UserTypeID = 1;
            vo.InstanceID = 1;              
            dBug.text = ObjectUtil.toString(vo);                
            ro.save(vo);                
        }

        private function resultHandler(event:ResultEvent):void
        {
            dBug.text = dBug.text + ObjectUtil.toString(event.result);
        }

        private function faultHandler(event:FaultEvent):void
        {
            dBug.text = dBug.text + ObjectUtil.toString(event.fault);
        }
    ]]>
</fx:Script>

Actionscript VO:

[Bindable]
[RemoteClass(alias="com.rottmanj.domain.user.UserAccount")]
public class UserAccount
{ (setters/getters)...}

Служба Java:

@Service
@RemotingDestination
public class UserAccountService {

private UserAccountDAO dao = null;
private static Logger logger = Logger.getLogger(UserAccountService.class);

@Autowired
public void setDao(UserAccountDAO dao)
{
    this.dao = dao;
}

@RemotingInclude
public UserAccount save(UserAccount dataObject)
{
    logger.debug(dataObject.toString());        
    return dataObject;
}

@RemotingInclude
public String test(String dataString)
{
    logger.debug(dataString.toString()); 
    return "This is a Test for " + dataString;
}
}
...