У меня такая же ошибка, как описано на это обсуждение Google, т.е. push-подписки облачного эмулятора Google для службы pubsub не работают и вызывают:
java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
Решение, предлагаемое в этой ветке, - использовать флаг --add-modules:
java ... --add-modules ...
но в Java11 это больше невозможно.
Итак, я последовать, чтобы увидеть, как заменить этот флаг --add-modules, но теперь мне нужно отредактировать файл pom.xml и использовать maven для добавления новых зависимостей. Я просмотрел некоторые команды плагина maven, такие как mvn exec:java, потому что я не уверен, как перестроить проект, и просто хотел бы запустить мой:
java -jar cloud-pubsub-emulator-0.1-SNAPSHOT-all.jar ...
путем добавления необходимых зависимостей, которые заменят флаг --add-modules.
PS: Я попытался перейти на версию Java <11 и переустановить эмулятор pubsub, но возникла другая ошибка, поэтому я решил придерживаться последней версии Java.
Большое спасибо, я наконец-то решил это, используя файлы .jar, как указано в этот ответ, и используя java -cp как подробный здесь, чтобы мне не приходилось проходить через pom.xml и mvn.




Правильно, --add-modules не был удален. Вместо этого речь идет о модуле java.xml.bind, который был объявлен устаревшим для удаления в Java SE 9 и в конечном итоге удален в Java SE 11. JEP 320 содержит все подробности. Автономная версия JAXB опубликована в Maven, поэтому ее не должно быть слишком сложно перенести, и она не должна требовать каких-либо изменений в Java-коде.