Форма Flex Flash Builder. Нет ошибок в Local Dev, но есть ошибки на производственном сервере
Я схожу с ума, пытаясь понять эту проблему. У меня есть приложение Flex Form, которое отлично работает на моем локальном сервере разработки. Я использую Flash Builder 4.5.1 с выпуском сообщества Zend Server и PHP 5.3.8. Я развертываю на сервер, работающий на PHP 5.2.17. У меня есть 2 раскрывающихся списка элементов управления в форме, которые заполняются данными из базы данных mysql с использованием служба данных php. Они отлично работают на сервере. Проблема в том, что после того, как форма заполнена и нажата кнопка сохранения, я немедленно получаю сообщение об ошибке отключения канала, говоря, что канал отключен до получения ответа. Я столкнулся с Чарльзом, и он выдает мне то же сообщение об ошибке, что и журнал PHP на сервере:
[06-Feb-2012 18:19:18] PHP Фатальная ошибка, которую можно подхватить: аргумент 1, передаваемый TeamService::createTeam(), должен быть экземпляром TeamVO, экземпляром stdClass, указанным в /home/nmal2011/public_html/services/TeamService. PHP на линии 22
Я удалил подсказку кода из TeamSerivce.php, но это не решило проблему. Я опубликую свой код Flex и PHP. Я передаю экземпляр TeamVO, и ничто из того, что я пробовал, не изменило этот результат. Я исследовал и боролся с этим в течение четырех дней. У меня нет этой проблемы в разработке локально, только в производстве на виртуальном хостинге.
Вот мой Flex Code:
protected function registrant_creationCompleteHandler(event:FlexEvent):void {
dateToday = new Date();
date_updatedDateField.selectedDate = dateToday;
statusTextInput.text = status;
teamVO = new TeamVO;
}
protected function btnSave_clickHandler(event:MouseEvent):void {
teamVO.tournament_id = ddlTournaments.selectedItem.tournament_id;
teamVO.date_updated = date_updatedDateField.text;
teamVO.first_name = first_nameTextInput.text;
teamVO.last_name = last_nameTextInput.text;
teamVO.company = companyTextInput.text;
teamVO.title = titleTextInput.text;
teamVO.address = addressTextInput.text;
teamVO.city = cityTextInput.text;
teamVO.state = ddlStates.selectedItem.state_id;
teamVO.postal_code = postal_codeTextInput.text;
teamVO.phone = phoneTextInput.text;
teamVO.email = emailTextInput.text;
teamVO.team_name = team_nameTextInput.text;
teamVO.team_id = parseInt(team_idTextInput.text);
teamVO.status = statusTextInput.text;
Alert.show(teamVO.first_name + " teamVO code hit");
createTeamResult.token = teamService.createTeam(teamVO);
lblMessage.text = "Your information has been saved.";
btnEnterTeamMembers.enabled = true;
}
protected function ddlTournaments_creationCompleteHandler(event:FlexEvent):void {
getTournamentsByActivityResult.token = tournamentService.getTournamentsByActivity(active);
}
protected function ddlStates_creationCompleteHandler(event:FlexEvent):void {
getAllStatesResult.token = statesService.getAllStates();
}
protected function createTeamResult_resultHandler(event:ResultEvent):void {
teamVO2 = createTeamResult.lastResult as TeamVO
teamVO2.team_id = parseInt(team_idTextInput2.text);
teamNo = teamVO2.team_id;
var eventObj:Event = new Event("setTeamID");
dispatchEvent(eventObj);
}
protected function btnEnterTeamMembers_clickHandler(event:MouseEvent):void {
this.parentApplication.currentState = "Members";
}
]]>
</fx:Script>
<fx:Metadata>
[Event(name="setTeamID", type="flash.events.Event")]
</fx:Metadata>
<fx:Declarations>
<valueObjects:TeamVO id="teamVO"/>
<teamservice:TeamService id="teamService"
fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)"
showBusyCursor="true"/>
<s:CallResponder id="createTeamResult"
result="createTeamResult_resultHandler(event)"/>
<valueObjects:TeamVO id="teamVO2"/>
<s:CallResponder id="getTournamentsByActivityResult"/>
<tournamentservice:TournamentService id="tournamentService"
fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)"
showBusyCursor="true"/>
<s:CallResponder id="getAllStatesResult"/>
<statesservice:StatesService id="statesService"
fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)"
showBusyCursor="true"/>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
Вот вызов службы PHP
public function createTeam(TeamVO $team){
$stmt = $this->_pdo->prepare("INSERT INTO $this->tablename (`first_name`, `last_name`, `address`, `city`, `state`, `postal_code`, `phone`, `email`, `company`, `title`, `team_name`, `status`, `tournament_id`, `date_updated`)
VALUES (:first_name, :last_name, :address, :city, :state, :postal_code, :phone, :email, :company, :title, :team_name, :status, :tournament_id, :date_updated)");
$stmt->bindParam(':first_name', $team->first_name);
$stmt->bindParam(':last_name', $team->last_name, PDO::PARAM_STR);
$stmt->bindParam(':address', $team->address, PDO::PARAM_STR);
$stmt->bindParam(':city', $team->city, PDO::PARAM_STR);
$stmt->bindParam(':state', $team->state, PDO::PARAM_STR);
$stmt->bindParam(':postal_code', $team->postal_code,PDO::PARAM_STR);
$stmt->bindParam(':phone', $team->phone, PDO::PARAM_STR);
$stmt->bindParam(':email', $team->email, PDO::PARAM_STR);
$stmt->bindParam(':company', $team->company, PDO::PARAM_STR);
$stmt->bindParam(':title', $team->title, PDO::PARAM_STR);
$stmt->bindParam(':team_name', $team->team_name, PDO::PARAM_STR);
$stmt->bindParam(':status', $team->status, PDO::PARAM_STR);
$stmt->bindParam(':tournament_id', $team->tournament_id, PDO::PARAM_INT);
$stmt->bindParam(':date_updated', $team->date_updated, PDO::PARAM_STR);
$stmt->execute();
$team->team_id = $this->_pdo->lastInsertId();
return $team;
}
Я могу достичь своей конечной точки zend amf, и, как я уже сказал, сервисные вызовы для заполнения 2 выпадающих списков данными выбора работают нормально, поэтому я знаю, что есть подключение к базе данных, и я был бы очень признателен за любую помощь или понимание, чтобы исправить это.