我下载了JavaBridge.war文件,并将其放到我的Apache www文件夹中一个名为“ JavaBridge”的文件夹中。因此,路径为:

http://myhost.com/JavaBridge/


所有“ hello.php”和“ test.php”或“ excel.php”都包含在该文件夹的根目录中。一世。 e .:
    http://myhost.com/JavaBridge/index.php

PHP之所以有效,是因为如果我转到该路径,phpinfo()函数将显示我的PHP配置。问题在于Java类没有被拾取。

Apache,Tomcat7和Java均在运行。我安装了默认的jdk。

java -version
java version "1.6.0_30"
OpenJDK Runtime Environment (IcedTea6 1.13.1) (6b30-1.13.1-1ubuntu2~0.12.04.1)
OpenJDK 64-Bit Server VM (build 23.25-b01, mixed mode)


当我访问该目录中的hello.php文件时,Apache日志显示以下内容:

[error] [client myhost] PHP Notice:  Undefined index: language in /var/www/JavaBridge/hello.php on line 11


这是此文件的内容:

<?php header("Content-type: text/html; charset=UTF-8"); ?>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>Hello</title>
<body>
<TABLE border='1'>
<tr>
<th>English</th>
<th><?php
 $lang=$_GET['language'];
 if(!isset($lang)) $lang="cs_CZ";
 echo $lang?>
</th>
</tr>
<tr>
<td>Hello</td>
<td>
<?php
if(!function_exists("bindtextdomain")) die("function bindtextdomain not found. Please       install language support, see http://php.net for details");
bindtextdomain("hello", "./locale");
textdomain("hello");
setlocale(LC_ALL, $lang);
echo _("hello");
?>
</td>
</tr>
</TABLE>
<form>
<p>
<select name='language'>
<option value="cs_CZ">cs_CZ (Czech)</option>
<option value="de_DE">de_DE (German)</option>
<option value="he_IL">he_IL (Hebrew)</option>
<option value="ja_JP">ja_JP (Japanese)</option>
</select>
<p>
<input type="submit" default="cs_CZ" value="Update"></input>
</form>
</body>
</html>


按照某些教程的建议,在WEB-INF中压缩了JavaBridge.war之后,我已经放置了/usr/share/tomcat7/lib中的3个库文件。

我已经按照其他教程的建议在/etc/tomcat7/web.xml中添加了webapp配置。

有人可以解释一下为什么使JavaBridge如此困难以及该怎么办吗?

最佳答案

正如Carsten所说,“如果您的查询字符串中没有language = SOMETHING,$lang=$_GET['language'];就会发出通知”。

附言尽量不要让问题悬而未决。

10-01 06:41