0

全文検索をGAE本番環境で機能させるのに問題があります。開発マシンでは正常に動作しますが、本番環境にデプロイすると、次のエラーが発生します。

com.google.apphosting.api.ApiProxy$CallNotFoundException: The API package 'search' or call 'IndexDocument()' was not found.

これは、正しいクラスが見つからないランタイムの問題のようですが、appengine-api-1.0-sdk-1.7.0.jarがWEB-INF / libに含まれているため、prodにデプロイするときに想定していました。 、そのバージョンのGAEを使用します。GAEがlibsをprodにデプロイする方法について何かが足りませんか?GAE SDK 1.7は、現在本番環境で利用できるはずです。

これらは私の輸入品です:

  import com.google.appengine.api.datastore.Entity;
import com.google.appengine.api.datastore.Key;
import com.google.appengine.api.search.Document;
import com.google.appengine.api.search.Field;
import com.google.appengine.api.search.GeoPoint;
import com.google.appengine.api.search.Index;
import com.google.appengine.api.search.IndexSpec;
import com.google.appengine.api.search.SearchServiceFactory;

//my instantiation
private static final Index INDEX = SearchServiceFactory.getSearchService()
              .getIndex(IndexSpec.newBuilder().setName("shared_index"));

バージョン1.7.0を使用しているようです。これが、使用しているバージョンのログと、その直後のエラーのスタックトレースです。

E 2012-08-07 19:30:37.352

version: Google App Engine/1.7.0

W 2012-08-07 19:30:37.702

com.google.apphosting.api.ApiProxy$CallNotFoundException: The API package 'search' or call 'IndexDocument()' was not found.
    at com.google.net.rpc3.client.RpcStub$RpcCallbackDispatcher$1.runInContext(RpcStub.java:782)
    at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:455)
    at com.google.tracing.TraceContext.runInContext(TraceContext.java:695)
    at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:333)
    at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:325)
    at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:453)
    at com.google.net.rpc3.client.RpcStub$RpcCallbackDispatcher.rpcFinished(RpcStub.java:824)
    at com.google.net.rpc3.client.RpcStub$RpcCallbackDispatcher.success(RpcStub.java:809)
    at com.google.net.rpc3.impl.client.RpcClientInternalContext.runCallbacks(RpcClientInternalContext.java:893)
    at com.google.net.rpc3.impl.client.RpcClientInternalContext.finishRpcAndNotifyApp(RpcClientInternalContext.java:798)
    at com.google.net.rpc3.impl.client.RpcNetChannel.afterFinishingActiveRpc(RpcNetChannel.java:1059)
    at com.google.net.rpc3.impl.client.RpcNetChannel.finishRpc(RpcNetChannel.java:907)
    at com.google.net.rpc3.impl.client.RpcNetChannel.handleResponse(RpcNetChannel.java:2255)
    at com.google.net.rpc3.impl.client.RpcNetChannel.messageReceived(RpcNetChannel.java:2062)
    at com.google.net.rpc3.impl.client.RpcNetChannel.access$2000(RpcNetChannel.java:143)
    at com.google.net.rpc3.impl.client.RpcNetChannel$TransportCallback.receivedMessage(RpcNetChannel.java:3117)
    at com.google.net.rpc3.impl.client.RpcChannelTransportData$TransportCallback.receivedMessage(RpcChannelTransportData.java:599)
    at com.google.net.rpc3.impl.wire.RpcBaseTransport.receivedMessage(RpcBaseTransport.java:417)
    at com.google.net.eventmanager.AbstractFutureTask$Sync.innerRun(AbstractFutureTask.java:260)
    at com.google.net.eventmanager.AbstractFutureTask.run(AbstractFutureTask.java:121)
    at com.google.net.eventmanager.EventManagerImpl.runTask(EventManagerImpl.java:578)
    at com.google.net.eventmanager.EventManagerImpl.internalRunWorkerLoop(EventManagerImpl.java:1002)
    at com.google.net.eventmanager.EventManagerImpl.runWorkerLoop(EventManagerImpl.java:884)
    at com.google.net.eventmanager.WorkerThreadInfo.runWorkerLoop(WorkerThreadInfo.java:136)
    at com.google.net.eventmanager.EventManagerImpl$WorkerThread.run(EventManagerImpl.java:1855)
4

1 に答える 1

1

appengine-api-1.0-sdk-1.7.0.jarをWEB-INF/libに含めると、そのバージョンとしてデプロイされるかどうかはわかりません。

Eclipseを使用している場合は、設定-> google->appengineから1.7SDKを選択しましたか?

また、どのように展開していますか?コマンドラインを使用している場合は、/ 1.7sdk / bin/appcfgファイルを使用してアップロードを行っていることを確認してください。Eclipseを使用している場合は、上記のようにプリファレンスを設定します。

上記を気にしないでください...

IndexSpecを構築する必要があると思います

private static final Index INDEX = SearchServiceFactory.getSearchService()
              .getIndex(IndexSpec.newBuilder().setName("shared_index").build());
于 2012-08-07T23:26:52.167 に答える