Эмулятор облачного хранилища данных Google не запускаетсяJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Эмулятор облачного хранилища данных Google не запускается

Сообщение Anonymous »

До сих пор я использовал следующую команду для тестирования приложения GAE в своей локальной среде разработки:

Код: Выделить всё

cd E:\myProj\myWebApp

Код: Выделить всё

"E:\Google\Cloud SDK\google-cloud-sdk\bin\java_dev_appserver.cmd" --generated_dir="E:\myProj\localAppData" --address=0.0.0.0 --port=8190 "E:\myProj\myWebApp\target\myProjWebApp-1.0.0"
... и все работало нормально.
У меня есть файл local_db.bin и файл datastore-indexes-auto.xml в папке:

Код: Выделить всё

E:\myProj\localAppData
и в нем есть данные. Я могу перейти по адресу http://localhost:8190/_ah/admin, а также просмотреть созданные таким образом данные.
Теперь я хотел бы:
  • запустить эмулятор хранилища данных как отдельный процесс
  • подключить к нему мое приложение
  • использовать данные, созданные в результате более ранних исполнений
Поэтому я скопировал 2 файла: файл local_db.bin и datastore-indexes-auto.xml из E:\myProj\localAppData в E:\myNewApp\src\main\webapp\WEB-INF \appengine-generated
Чтобы запустить эмулятор хранилища данных, я использую эту команду:

Код: Выделить всё

cd E:\myNewApp\src\main\webapp

Код: Выделить всё

gcloud beta emulators datastore start --data-dir="E:\myNewApp\src\main\webapp"
и я получаю эту ошибку:

Код: Выделить всё

E:\myNewProj\src\main\webapp>gcloud beta emulators datastore start --data-dir="E:\myNewProj\src\main\webapp"
WARNING: Cloud Datastore Emulator support for Java JRE version 11 will be dropped after gcloud command-line tool release 508.0.0.  Please upgrade to Java JRE version 21 or higher to continue using the latest Cloud Datastore Emulator.
WARNING: Reusing existing data in [E:\myNewProj\src\main\webapp].
Executing: cmd /c E:\Google\Cloud SDK\google-cloud-sdk\platform\cloud-datastore-emulator\cloud_datastore_emulator.cmd start --host=localhost --port=8081 --store_on_disk=True --allow_remote_shutdown --consistency=0.9 E:\myNewProj\src\main\webapp
[datastore] Jan 13, 2025 11:28:51 AM com.google.cloud.datastore.emulator.CloudDatastore$FakeDatastoreAction$9 apply
[datastore] INFO: Provided --allow_remote_shutdown to start command which is no longer necessary.
[datastore] Jan 13, 2025 11:28:51 AM com.google.cloud.datastore.emulator.CloudDatastore$StartAction apply
[datastore] INFO: Running CLOUD_DATASTORE emulator.
[datastore] Jan 13, 2025 11:28:51 AM com.google.cloud.datastore.emulator.impl.LocalDatastoreFileStub 
[datastore] INFO: Local Datastore initialized:
[datastore]     Type: High Replication
[datastore]     Storage: E:\myNewProj\src\main\webapp\WEB-INF\appengine-generated\local_db.bin
[datastore] Jan 13, 2025 11:28:52 AM com.google.cloud.datastore.emulator.impl.LocalDatastoreFileStub$BackwardsCompatibleInputStream readClassDescriptor
[datastore] INFO: Error converting backwards compatible class: Unable to make field private java.lang.String java.io.ObjectStreamClass.name accessible: module java.base does not "opens java.io" to unnamed module @7bab3f1a
[datastore] Jan 13, 2025 11:28:52 AM com.google.cloud.datastore.emulator.impl.LocalDatastoreFileStub$BackwardsCompatibleInputStream readClassDescriptor
[datastore] INFO: Error converting backwards compatible class: Unable to make field private java.lang.String java.io.ObjectStreamClass.name accessible: module java.base does not "opens java.io"  to unnamed module @7bab3f1a
[datastore] Jan 13, 2025 11:28:52 AM com.google.cloud.datastore.emulator.impl.LocalDatastoreFileStub load
[datastore] INFO: Failed to load from the backing store, E:\myNewProj\src\main\webapp\WEB-INF\appengine-generated\local_db.bin
[datastore] java.lang.ClassNotFoundException: com.google.appengine.api.datastore.dev.LocalDatastoreService$Profile
[datastore]     at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
[datastore]     at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
[datastore]     at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
[datastore]     at java.base/java.lang.Class.forName0(Native Method)
[datastore]     at java.base/java.lang.Class.forName(Class.java:467)
[datastore]     at java.base/java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:773)
[datastore]     at java.base/java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:2034)
[datastore]     at java.base/java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1898)
[datastore]     at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2224)
[datastore]     at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1733)
[datastore]     at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:509)
[datastore]     at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:467)
[datastore]     at java.base/java.util.HashMap.readObject(HashMap.java:1552)
[datastore]     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[datastore]     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
[datastore]     at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[datastore]     at java.base/java.lang.reflect.Method.invoke(Method.java:569)
[datastore]     at java.base/java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1100)
[datastore]     at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2423)
[datastore]     at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2257)
[datastore]     at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1733)
[datastore]     at java.base/java.io.ObjectInputStream$FieldValues.(ObjectInputStream.java:2606)
[datastore]     at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2457)
[datastore]     at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2257)
[datastore]     at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1733)
[datastore]     at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:509)
[datastore]     at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:467)
[datastore]     at com.google.cloud.datastore.emulator.impl.LocalDatastoreFileStub.load(LocalDatastoreFileStub.java:637)
[datastore]     at com.google.cloud.datastore.emulator.impl.LocalDatastoreFileStub.startInternal(LocalDatastoreFileStub.java:151)
[datastore]     at com.google.cloud.datastore.emulator.impl.BaseLocalDatastore$3.run(BaseLocalDatastore.java:432)
[datastore]     at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
[datastore]     at com.google.cloud.datastore.emulator.impl.BaseLocalDatastore.start(BaseLocalDatastore.java:428)
[datastore]     at com.google.cloud.datastore.emulator.DatastoreEmulator.start(DatastoreEmulator.java:37)
[datastore]     at com.google.cloud.datastore.emulator.CloudDatastore$1.start(CloudDatastore.java:656)
[datastore]     at com.google.cloud.datastore.emulator.CloudDatastore$StartAction.apply(CloudDatastore.java:566)
[datastore]     at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:58)
[datastore]     at com.google.cloud.datastore.emulator.CloudDatastore.run(CloudDatastore.java:769)
[datastore]     at com.google.cloud.datastore.emulator.CloudDatastore.main(CloudDatastore.java:727)
[datastore]
[datastore] API endpoint: http://localhost:8081
[datastore] If you are using a library that supports the DATASTORE_EMULATOR_HOST environment variable, run:
[datastore]
[datastore]   export DATASTORE_EMULATOR_HOST=localhost:8081
[datastore]
[datastore] Dev App Server is now running.
[datastore]
[datastore] The previous line was printed for backwards compatibility only.
[datastore] If your tests rely on it to confirm emulator startup,
[datastore] please migrate to the emulator health check endpoint (/).  Thank you!
[datastore] The health check endpoint for this emulator instance is http://localhost:8081/
При переходе по адресу http://localhost:8081/ я получаю «ОК». Но когда я запускаю приложение (которое теперь развернуто в Tomcat как военный файл), оно не может прочитать какие-либо данные.
Из журнала я понимаю, что ошибочная строка:
java.lang.ClassNotFoundException: com.google.appengine.api.datastore.dev.LocalDatastoreService$Profile. Но тогда как передать этот класс/банку, содержащую этот класс, команде?
Как мне решить эту проблему?

Подробнее здесь: https://stackoverflow.com/questions/793 ... s-to-start
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Эмулятор облачного хранилища данных Google не запускается
    Anonymous » » в форуме JAVA
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Эмулятор облачного хранилища данных Google не запускается
    Anonymous » » в форуме JAVA
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Эмулятор облачного хранилища данных Google не запускается
    Anonymous » » в форуме JAVA
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Эмулятор облачного хранилища данных Google не запускается
    Anonymous » » в форуме JAVA
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Ошибка при загрузке файлов FAISS и Pickle из облачного хранилища Google в Python: ошибка атрибута «fields_set»
    Anonymous » » в форуме Python
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»