Вспомогательные технологии не найдены: org.GNOME.Accessibility.AtkWrapper - PullRequest
0 голосов
/ 04 ноября 2018

Как решить ошибку «Вспомогательные технологии не найдены» в Google App Engine openJdk?

Я занимаюсь разработкой одного веб-приложения, которое использует Apache Batik, оно отлично работает на локальном уровне с jetty и oracle jdk, но когда я развертываю его в Google-App-Engine и вызываю свой API, я получаю ошибку ниже.

Caused by: java.awt.AWTError: Assistive Technology not found: org.GNOME.Accessibility.AtkWrapper
at java.awt.Toolkit.loadAssistiveTechnologies(Toolkit.java:807)
at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:886)
at org.apache.batik.bridge.CursorManager.<clinit>(CursorManager.java:102)
at org.apache.batik.bridge.BridgeContext.<init>(BridgeContext.java:1162)
at org.apache.batik.bridge.BridgeContext.<init>(BridgeContext.java:292)
at org.apache.batik.transcoder.SVGAbstractTranscoder.createBridgeContext(SVGAbstractTranscoder.java:336)
at org.apache.batik.transcoder.SVGAbstractTranscoder.createBridgeContext(SVGAbstractTranscoder.java:312)

Я искал в Google, что люди говорят: «Это можно сделать, отредактировав файл accessibility.properties для OpenJDK 8»

Закомментируйте следующую строку:

#assistive_technologies=org.GNOME.Accessibility.AtkWrapper

Но я использую Google App Engine и не уверен, как я могу это сделать?

Любая помощь будет оценена.

Ответы [ 2 ]

0 голосов
/ 11 июня 2019

Я столкнулся с той же проблемой.

Мое решение:

Использовать пользовательское изображение докера.

Использовать пользовательскую среду выполнения в app.yaml

runtime: custom

Добавить новый файл 'Dockerfile' в src / main / docker / Dockerfile

FROM gcr.io/google-appengine/jetty
ADD you_war_fle_name_inside_target_dir $JETTY_BASE/webapps/root.war
WORKDIR $JETTY_BASE
RUN sed -i -e '/^assistive_technologies=/s/^/#/' /etc/java-*-openjdk/accessibility.properties
RUN java -jar $JETTY_HOME/start.jar --approve-all-licenses --create-startd --add-to-start=jmx,stats,hawtio && chown -R jetty:jetty $JETTY_BASE

А затем выполните следующую команду из облачной консоли.

mvn package -DskipTests appengine:deploy
0 голосов
/ 04 ноября 2018

Я решил это, установив свойство System динамически.

Properties props = System.getProperties();
props.setProperty("javax.accessibility.assistive_technologies", "");
...