Это немного странно, но это работает:
ClassMetadata hibernateMetadata = sessionFactory.getClassMetadata(pClassName);
if (hibernateMetadata == null)
{
return;
}
if (hibernateMetadata instanceof AbstractEntityPersister)
{
AbstractEntityPersister persister = (AbstractEntityPersister) hibernateMetadata;
String tableName = persister.getTableName();
String[] columnNames = persister.getKeyColumnNames();
}
извиняюсь за то, что так долго не отвечал на этот вопрос. Проблема была вызвана брандмауэром в офисе, блокирующим исходящий SMTP-трафик. Я до сих пор не уверен, почему он ничего не вернул, но за пределами этого офиса, когда он был протестирован, ошибки php для недопустимого smtp и т. Д. Вернулись нормально. Просто случай, когда в сети разрешены соответствующие порты.
Спасибо всем за помощь.
Похоже, вы получаете сообщение об ошибке, но просто не видите ее. Убедитесь, что это где-то в вашем коде
ini_set( 'display_errors', 1 );
error_reporting( E_ALL );
И проверьте журналы Apache на наличие 500 ошибок.
У PHP есть собственный журнал ошибок, в случае сомнений проверьте его. Вы можете найти его, запустив
<?php
phpinfo();
?>
. Он должен находиться в разделе PHP Core - если он пуст, отредактируйте файл php.ini и включите log_errors и укажите где вы хотите разместить файл.
Ошибки, которые мне не удалось отобразить, я обнаружил с помощью этого.
ОБНОВЛЕНИЕ
Покопался, и кажется, что Zend_Mail по сути является оболочкой для почты PHP () согласно документации: http://framework.zend.com/manual/en/zend.mail.html
Имея это в виду, в руководстве по PHP есть некоторая информация о функции PHP mail (), которую вы мы собираемся посмотреть на SendMail http://www.php.net/manual/en/ref.mail.
Я успешно использую phpmailer в окнах (моя машина разработчика). Могу я увидеть код установки? Я делаю что-то подобное ниже. Во-первых, вам нужно убедиться, что модуль openssl установлен на php, если вы используете ssl. Взгляните на ниже. Убедитесь, что для вашего флага SMTPDebug установлен вывод, с которым вы можете работать.
<?php
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = "blah.com";
$mail->SMTPDebug = 1;
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->Host = "mail.blah.com";
$mail->Port = 465;
$mail->Username = "noreply@blah.com";
$mail->Password = "smtppass";
$mail->SetFrom('noreply@blah.com', 'Blah Name');
$mail->AddReplyTo("noreply@blah.com", "Blah Name");
$mail->Sender = "noreply@blah.com"
?>