Я использую петрушку 3 с Flex 4 (AIR) для одного из моих приложений. Когда я делаю удаленный вызов, я отправляю событие, которое доходит до командного класса, а затем до уровня сервиса уровня Java. До сих пор все работает нормально. Уровень Java вызывает некоторый вызов и т. Д. Возвращает результат, но обработчик результата (или обработчик ошибок) не получает контроль.Обработчик результата не получает контроль в петрушке 3, используемый с Flex 4 (BlazeDS + Spring)
Project
bin-debug
libs
parsley-core-3.0.0.swc
parsley-flex-3.0.0.swc
parsley-xml-3.0.0.swc
spicelib-commands-3.1.1.swc
spicelib-reflect-3.0.0.swc
spicelib-util-3.1.0.swc
spicelib-xml-mapper-3.0.2.swc
Main.mxml
ProjectEvent.as
LoadProjectsCommand
ProjectPM.as
и другие материалы.
Класс команды получает контроль, а также может вызвать службу java. Код выглядит следующим образом:
package
{
import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.rpc.AsyncToken;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.rpc.remoting.RemoteObject;
/*http://www.spicefactory.org/parsley/docs/3.0/manual/managedcommands.php*/
public class LoadProjectsCommand
{
[Inject(id="projectRemoteService")]
public var projectRemoteService:RemoteObject;
[Inject]
public var model:ProjectScreenPM;
public function execute(event:ProjectEvent):AsyncToken
{
return projectRemoteService.getAllProjectsWithSprintsInSystem() as AsyncToken;
}
public function result(event:ResultEvent):void
{
Alert.show("Result");
}
public function fault(event:FaultEvent):void
{
Alert.show("Fault in retrieving projects","Error");
}
}
}
Я проверил все, что хорошо в вызове службы Java. Может ли кто-нибудь помочь мне?
Я нашел ответ. В петрушке 3 мне также нужно добавить ответчика к токену, и теперь он работает нормально. Но совершенно удивительно, что этот код отлично работает в петрушке 2.4. –
Если вы вручную добавляете ответчика, то это ваш ответчик, который вызывает метод сбоя, а не Parsley. Это не подходящее решение, так как это приведет к тому, что команда не будет GC'd, что может привести к утечке памяти. Кроме того, другие обработчики '[CommandResult]' или '[CommandError]' не будут вызываться. Я предлагаю вам опубликовать вопрос на форумах парслингов, так как я не сделал обновление с 2.4 до 3. –
Спасибо, Марти, я разместил его на форуме петрушки. –