2011-06-07 21 views
0

PHP(Quercus経由)とエンティティ用の低レベルデータアクセスAPIを使用してGoogle AppEngineのデータストアにクエリを実行すると、エンティティが存在しないというエラーです。以前にデータストアに入れたとしても、そのエンティティは存在しません。PHP(Quercus経由)と低レベルAPIを使用してGoogle AppEngineのデータストアを照会していません

特定のエラーが"com.caucho.quercus.QuercusException:com.google.appengine.api.datastore.DatastoreService.get:試験(値1):いいえエンティティが鍵一致見つかりませんでした" である

link -

<?php 
import com.google.appengine.api.datastore.DatastoreService; 
import com.google.appengine.api.datastore.DatastoreServiceFactory; 
import com.google.appengine.api.datastore.Entity; 
import com.google.appengine.api.datastore.EntityNotFoundException; 
import com.google.appengine.api.datastore.Key; 
import com.google.appengine.api.datastore.KeyFactory; 
import com.google.appengine.api.datastore.PreparedQuery; 
import com.google.appengine.api.datastore.Query; 

$testkey = KeyFactory::createKey("Test", "value1"); 
$ent = new Entity($testkey); 
$ent->setProperty("field1", "value2"); 
$ent->setProperty("field2", "value3"); 
$dataService = DatastoreServiceFactory::getDatastoreService(); 
$dataService->put($ent); 
echo "Data entered"; 

try 
{ 
$ent = $dataService->get($testkey); 
echo "Data queried - the results are \n"; 
echo "Field1 has value ".$ent->getProperty("field1")."\n"; 
echo "Field2 has value ".$ent->getProperty("field2")."\n"; 
} 
catch(EntityNotFoundException $e) 
{ 
echo("<br/>Entity test not found."); 
echo("<br/>Stack Trace is:\n"); 
echo($e); 

} 

そして、ここでは詳細なスタックトレースだ - ここに関連するコードです。

このコードはJavaで正しく動作します(もちろん構文を変更した後)。私は何が間違っているのだろうか。

ありがとうございました。

+0

コードを実行したときに何が起こったか教えてください。例外が発生する場合は、スタックトレースも含める必要があります。 –

+0

申し訳ありません。スタックトレース - [リンク](http://pastebin.com/Cr30sR7k)です。 –

+0

私はデータストアに入れたときにキーTest(value1)と一致するエンティティが見つからなかったと言うことで困惑しています。 –

答えて

0

私は私の問題の解決策を見つけました。それは依存関係の欠落によって引き起こされたもので、私はプリパッケージされたPHP Wordpressアプリケーションhereを使用して解決しました。

注意すべき点が1つあります。パッケージは、src /ディレクトリ以外のすべてのファイルがsrc /ディレクトリの横にあるwar /ディレクトリにある必要があるという小さな問題を見落としていました(これは、ドキュメント上で述べられているようにappengineの規約に従います)。だから私は自分自身でファイルを整理し、上記のPHPファイルをwar /ディレクトリに入れて、appengine上でうまく動作しています。

関連する問題