504 перенаправляет, когда я пытаюсь поймать в php - PullRequest
0 голосов
/ 30 апреля 2019

Проблема, с которой я столкнулся, заключается в том, что я пытаюсь выполнить запрос curl к серверу и перенаправляется на страницу 504

enter image description here

Я пытаюсь уловить ошибку следующим образом:

$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

  if ($httpCode==504){
    header("Location: myOwnErrorPageFor504.php"); 
}

Этот код, похоже, перехватывает другие коды ошибок, например, 200 прекрасно. Я думаю, что проблема в том, что, как только 504, он перенаправляет на эту страницу или что-то еще, прежде чем мой код отключается, чтобы проверить, вернул ли он 504? Я просто хочу сделать что-нибудь, если вернется 504.

Я использую apache и php 7.0, если это актуально. Это был принятый ответ на пару других вопросов, подобных этому, но он не работает для меня, поэтому я спрашиваю здесь.

Обратите внимание на мои спецификации Apache. Время ожидания истекает примерно через 50 секунд.

Тайм-аут в моем апаче 300. KeepAliveTimeout равен 5.

Для php: время ожидания сокета по умолчанию 120.

Так что я не знаю, мой ли это сервер. Кроме того, этот код запрашивает другой сервер, который также запрашивает другой сервер после этого. (это API, который затем запрашивает другой API, я его не написал, вот что он делает).

Для человека, который хочет полный код curl:

$ch = curl_init();

$headers = array(
    'Content-Type: application/json',
    $auth
);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_VERBOSE, 1);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");

curl_setopt($ch, CURLOPT_URL, $url);



$result = curl_exec($ch);

$ch_error = curl_error($ch);
  $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

  if ($httpCode==504){
curl_close($ch);
    header("Location: contactUs.php"); 
}
if ($ch_error) {
    curl_close($ch);
   return $ch_error;


} else {

        curl_close($ch);
        return $result;
}

1 Ответ

0 голосов
/ 01 мая 2019

Spring Data JPA по умолчанию ищет EntityManagerFactory с именем entityManagerFactory.Посмотрите эту часть Javadoc EnableJpaRepositories или Таблицу 2.1 документации JPA Spring Data.

Это означает, что вам нужно либо переименовать ваш компонент emf в entityManagerFactory, либо изменить конфигурацию Spring на:

(если вы используете XML)

или

@ EnableJpaRepositories (basePackages = "your.package", entityManagerFactoryRef = "emf")

(если вы используете JavaConfig)

...