サーブレットを使用し、データストアと名前空間 API を使用して Web アプリケーションを作成しました。
これは私のローカルホストではうまく機能しますが、展開されたコピーにデータを保存することはありません。
xml を読み取って BigTable に格納できるように、別のリファレンスとともに、Java ドキュメントを使用してマルチテナンシーに従いました。
クラスを持続可能にします。
`@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class Layout {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
private String id;'
データを保存します。
`customerKey = KeyFactory.createKey(Layout.class.getSimpleName(), layout.getId());
layout.setKey(customerKey);`
今それを永続的にしてください...
`pm = XMLImportPersistenceManagerFactory.get().getPersistenceManager();
SAXParser saxParser = factory.newSAXParser();
saxParser.parse(new InputSource(_URL_STRINGS), this);`
それからそれを閉じます...
pm.close()
コードは私のローカルホストで美しく機能します。appengine で確認できるように動作しません。サーブレットは実行されますが、データは保存されません。
URL にアクセスすると、Layouts Created と表示され、ログに 200 が表示されますが、データはありません。これは、サーブレットが実行中であることを示しています。ここに私のアプリがあります: http://layoutimporter.appspot.com/CreateLayout?namespace=boston
いくつかの締めくくりの詳細。クエリ文字列のパラメーターに基づいて名前空間を設定する名前空間フィルターを作成しました。
ウォームアップ サーブレットを実行して PersistenceManagerFactory を初期化し、リクエストのロードを回避しています = 1.
これに関する任意のアイデア。私は自分のリソースを使い果たし、「おっと、あなたの種類が見つかりません...」などに関連するすべての同じスレッド間でスプールしています.
展開されたコピーを削除して、新しい展開されたコピーを開始しようとしました。展開されたコピーを元に戻そうとしました。喜びはありません。名前空間とデータを永続化した後、ローカル コピーでは out.print できますが、リモート コピーでは出力できません。これは本当のスタンパーです!
ありがとう!
..\ウェンディ