У меня есть простой сервис, который я создал с помощью 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;
}
}