[英]PHP JavaBridge Not Finding Java Classes Ubuntu 12.0.4 Precise PHP 5.3 Tomcat7
我下載了JavaBridge.war文件,並將其放到我的Apache www文件夾中一個名為“ JavaBridge”的文件夾中。 因此,路徑為:
http://myhost.com/JavaBridge/
所有“ hello.php”和“ test.php”或“ excel.php”都包含在該文件夾的根目錄中。 即: 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>
在一些教程中建議將JavaBridge.war放到/usr/share/tomcat7/lib
之后,我已經放置了3個來自WEB-INF
庫文件。
我已經按照其他教程中的建議在/etc/tomcat7/web.xml
添加了一個webapp配置。
有人可以解釋一下為什么使JavaBridge如此困難以及該怎么辦嗎?
正如Carsten所說,“如果查詢字符串中沒有language = SOMETHING,則$lang=$_GET['language'];
會引起您的注意”。
PS盡量不要讓問題無解。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.