我有两种情况:一种用于开发(windows),另一种用于生产(unix)
Windows 中的开发环境:我有一个 apache Web 服务器,它调用一个安装了 javabridge 的 apache tomcat 服务器以调用 jasper 报告。(一切都在本地主机上)并且一切正常。
CentOs 中的生产环境:我有一个 apache Web 服务器,它通过 javabridge 调用另一个 tomcat 服务器(安装了 java)以调用 jasper 报告。(这是我得到错误的地方)
在 tomcat 服务器中,我可以执行 Javabridge 函数和示例,但是当我从 apache Web 服务器调用它们时,它会失败
我收到此错误
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');
?>
tomcat 服务器 Java.inc 文件中的确切代码是(第 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);
}
更新 当我从开发环境调用链接时,这是生成的标题:
array(3) { [0]=> string(8) "HTTP/1.1" [1]=> string(3) "200" [2]=> string(2) "OK" }
当我从生产环境调用它时,标题为空
array(1) { [0]=> string(0) "" }
可能是什么问题呢?服务器中是否有任何选项可以取出响应的标头或类似的东西?