Я работал над этим веб-приложением, где нам нужно загрузить изображение с веб-камеры или локальный файл из системы и определить, безопасно ли это изображение для использования в качестве изображения профиля.

Стек для этого веб-приложения требует, чтобы он работал на Tomcat 7, поэтому мы написали их как сервлеты Java. Нам нужен API Google Vision, чтобы определить, подходит ли изображение, проверив, совпадают ли метки, возвращаемые API, с набором предопределенных тегов, которые у нас есть. Чтобы добавить Google Vision API, мы добавили в наш maven ‘pom.xml’ следующее:

<dependency>
    <groupId>com.google.cloud</groupId>
    <artifactId>google-cloud-vision</artifactId>
    <version>0.17.2-beta</version>
</dependency>

и Бам! У меня появилась следующая ошибка из Google API во время выполнения:

Jetty ALPN/NPN has not been properly configured

Google API использует для выполнения протокол HTTP/2, который до сих пор не поддерживается старыми серверами Tomcat. Чтобы исправить это, нам нужно настроить клиент ALPN, который соответствует нашей версии JDK для нашего проекта.

Подробнее об этом можно прочитать по следующей ссылке:



Чтобы исправить нашу проблему, нам нужно загрузить соответствующий клиент ALPN (я скачал файл jar) из репозитория maven здесь (версия — 8.1.4.v20150727, поскольку моя версия JDK была 1.8.0u51):



После загрузки jar-файла вам необходимо перейти к настройкам сервера Tomcat в eclipse и добавить jar-файл ALPN в качестве одной из записей начальной загрузки для вашего сервера. Найдите аналогичный способ добавить его в путь к классам, если вы используете любую другую IDE.

Это должно решить проблему, вы, вероятно, должны заставить ее работать после того, как добавите это.

Во время развертывания:

Добавьте банку alpn-client в папку и добавьте ее в $CLASSPATH вашего сервера tomcat. Я установил $CLASSPATH в папку /usr/local/apache-tomcat-XXXX/bin, где я создал файл с именем setenv.sh, и вот что он содержит:

CATALINA_OPTS="-DGOOGLE_APPLICATION_CREDENTIALS=/home/parithi/google_credentials.json"
CLASSPATH="$CLASSPATH:/home/parithi/MY_PROJECT_FOLDER/:/home/parithi/alpn-boot-7.1.3.v20150130.jar"

Спасибо за ваше время, если у вас есть какие-либо вопросы, не стесняйтесь оставлять комментарии ниже. И если эта статья вам помогла, поддержите ее, нажав кнопку «Нравится».