最近想使用网页显示Lucene搜索的结果,网上说用Php和javabridge可以,但是,我使用javabridge里面的example或者自己写的类都不行。
apache2.2+php5+mysql
现在是可以调用java自己的类如java.lang.String,但是自己写的不行啊而且javabridge里面有一个例子是这样的:
<?php include_once ("java/Java.inc");java_autoload("lucene.jar");use java\lang\System as SYS;
use java\io as IO;
use java\util as Util;
use org\apache\lucene as Lucene;
try {
echo "indexing ... ";
/* create the index files in the tmp dir */
$tmp = create_index_dir();
$analyzer = new Lucene\analysis\standard\StandardAnalyzer();
$writer = new Lucene\index\IndexWriter($tmp, $analyzer, true);
$file = new IO\File(getcwd());
$files = $file->listFiles();
assert (!java_is_null($files)); foreach($files as $f) {
$doc = new Lucene\document\Document();
$doc->add(new Lucene\document\Field(
"name",
$f->getName(),
Lucene\document\Field::type("Store")->YES,
Lucene\document\Field::type("Index")->UN_TOKENIZED));
$writer->addDocument($doc);
}
................
................
................
但是输出是这个
Warning: Unexpected character in input: '\' (ASCII=92) state=0 in C:\AppServ\www\test.php on line 5Parse error: syntax error, unexpected T_STRING, expecting T_AS or T_PAAMAYIM_NEKUDOTAYIM or ';' in C:\AppServ\www\test.php on line 5
貌似php没有use这个用法啊?
如果用java_require("lucene.jar");又说java_require什么不支持了
大家路过帮帮忙吧谢谢了
apache2.2+php5+mysql
现在是可以调用java自己的类如java.lang.String,但是自己写的不行啊而且javabridge里面有一个例子是这样的:
<?php include_once ("java/Java.inc");java_autoload("lucene.jar");use java\lang\System as SYS;
use java\io as IO;
use java\util as Util;
use org\apache\lucene as Lucene;
try {
echo "indexing ... ";
/* create the index files in the tmp dir */
$tmp = create_index_dir();
$analyzer = new Lucene\analysis\standard\StandardAnalyzer();
$writer = new Lucene\index\IndexWriter($tmp, $analyzer, true);
$file = new IO\File(getcwd());
$files = $file->listFiles();
assert (!java_is_null($files)); foreach($files as $f) {
$doc = new Lucene\document\Document();
$doc->add(new Lucene\document\Field(
"name",
$f->getName(),
Lucene\document\Field::type("Store")->YES,
Lucene\document\Field::type("Index")->UN_TOKENIZED));
$writer->addDocument($doc);
}
................
................
................
但是输出是这个
Warning: Unexpected character in input: '\' (ASCII=92) state=0 in C:\AppServ\www\test.php on line 5Parse error: syntax error, unexpected T_STRING, expecting T_AS or T_PAAMAYIM_NEKUDOTAYIM or ';' in C:\AppServ\www\test.php on line 5
貌似php没有use这个用法啊?
如果用java_require("lucene.jar");又说java_require什么不支持了
大家路过帮帮忙吧谢谢了
编写一个简单的php测试一下
$str = new java("java.lang.String", "hello");
echo $str;
http://www.appservnetwork.com/
我javabridge.log如下
Dec 06 13:32:23 JavaBridge INFO : VM : 1.7.0_01@http://java.oracle.com/
Dec 06 13:32:23 JavaBridge INFO : JavaBridge version : 6.2.1
Dec 06 13:32:23 JavaBridge INFO : logFile : JavaBridge.log
Dec 06 13:32:23 JavaBridge INFO : default logLevel : 3
Dec 06 13:32:23 JavaBridge INFO : socket : HTTP_LOCAL:8080
Dec 06 13:32:23 JavaBridge INFO : java.ext.dirs : C:\Program Files\Java\jre7\lib\ext;C:\WINDOWS\Sun\Java\lib\ext
Dec 06 13:32:23 JavaBridge INFO : php.java.bridge.base: C:\Documents and Settings\Administrator
Dec 06 13:32:23 JavaBridge INFO : thread pool size : 20
Dec 06 13:32:23 JavaBridge INFO : JavaBridgeRunner started on port INET_LOCAL:8080
Dec 06 13:42:32 JavaBridge ERROR: An exception occured: java.lang.ClassNotFoundException: test.HelloWorld
java.lang.ClassNotFoundException: test.HelloWorld
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at php.java.bridge.Util.classForName(Util.java:1518)
at php.java.bridge.JavaBridge.CreateObject(JavaBridge.java:445)
at php.java.bridge.Request.handleRequest(Request.java:458)
at php.java.bridge.Request.handleRequests(Request.java:500)
at php.java.bridge.JavaBridge.handleRequests(JavaBridge.java:150)
at php.java.bridge.JavaBridgeRunner.doPut(JavaBridgeRunner.java:207)
at php.java.bridge.http.HttpServer.service(HttpServer.java:289)
at php.java.bridge.http.HttpServer$Runner.run(HttpServer.java:205)
at php.java.bridge.ThreadPool$Delegate.run(ThreadPool.java:60)