Неопределенное смещение: 1 в http: //mysite_url/../Java.inc в строке 1067

0

У меня есть два сценария: один для разработки (windows) и другой для производства (unix)

Разработка в Windows: у меня есть веб-сервер Apache, который вызывает сервер Tomcat Apache, который установил javabridge для вызова отчета яшмы. (Все на локальном хосте), и все работает нормально.

Производство в CentO: у меня есть веб-сервер Apache, который вызывает другой сервер tomcat (с установленной java) javabridge, чтобы вызвать отчет яшмы. (Вот где я получаю ошибку)

На сервере tomcat я могу выполнять Javabridge-функции и примеры, но когда я вызываю их с веб-сервера Apache, он не работает

Я получаю эту ошибку

 Undefined offset: 1 in http://mysite_url/../Java.inc on line 1067 Fatal error: unknown error: please see back end log for details in http://mysite_url/Java.inc on line 869

Когда я пытаюсь выполнить этот код:

<?php

    //Parametro en caso de que el reporte no este parametrizado
    $Parametro = new java('java.util.HashMap');
    ?>

Точный код в файле Java.inc сервера tomcat (строка 1067)

function parseHeaders() {
$this->headers=array();
$line=trim(fgets($this->socket,JAVA_RECV_SIZE));
$ar=explode (" ",$line);
$code=((int)$ar[1]);  // LINE NUMBER 1067
if ($code !=200) $this->headers["http_error"]=$code;
while (($str=trim(fgets($this->socket,JAVA_RECV_SIZE)))) {
if($str[0]=='X') {
if(!strncasecmp("X_JAVABRIDGE_REDIRECT",$str,21)) {
$this->headers["redirect"]=trim(substr($str,22));
} else if(!strncasecmp("X_JAVABRIDGE_CONTEXT",$str,20)) {
$this->headers["context"]=trim(substr($str,21));
}

И другая строка в Java.inc - (867):

function dieWithBrokenConnection($msg) {
unset($this->protocol->client->protocol);
trigger_error ($msg?$msg:"unknown error: please see back end log for details",E_USER_ERROR);
}

ОБНОВЛЕНИЕ Когда я вызываю ссылку из разработки env, это сгенерированный заголовок:

array(3) { [0]=> string(8) "HTTP/1.1" [1]=> string(3) "200" [2]=> string(2) "OK" }

Когда я вызываю это из производственного env, заголовок пуст

array(1) { [0]=> string(0) "" }

В чем может быть проблема? Есть ли какой-либо вариант на сервере, который отображает заголовок ответа или что-то в этом роде?

  • 1
    В соответствии с политикой SO, пожалуйста, включите код в сам вопрос, вместо того, чтобы ссылаться на него. stackoverflow.com/help/how-to-ask
  • 0
    что говорит журнал?
Показать ещё 12 комментариев
Теги:
php-java-bridge

2 ответа

0
Лучший ответ

Мой код был в порядке, проблема заключалась в том, что я пытался получить доступ к другому серверу с помощью общедоступного ip, поэтому брандмауэр каким-то образом вынул заголовок запроса.

Решение состояло в том, чтобы изменить общедоступный IP-адрес на тот же сетевой локальный IP-адрес, и все когда-либо начало работать, и java.inc начал читать заголовок запроса, поэтому каждое место в Java.inc и JavaProxy.php вам нужно установить сетевую файловую систему ip и tomcats переменные тоже.

1

Мне жаль, что у меня плохой английский. У меня такая же проблема. Я решил эту проблему неактивным портом tomcat (8080) по интернет-безопасности Касперского. Перейдите в настройку → дополнительная → сеть. Выбирается только выбранный выбор на мониторе радиообмена. неактивный порт 8080. ОК и работает хорошо на выигрыше 10.

  • 0
    Работал на меня. Спасибо!!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню