Можно ли запустить одно приложение на другой версии Java (JDK 1.8 и JDK 12)? - PullRequest
0 голосов
/ 19 сентября 2019

Разрабатываем веб-приложение с платежным шлюзом (Spring Boot, Paytm).

Мы используем JDK 12 для нашего REST-приложения.В нашем приложении мы интегрируем платежный шлюз Paytm.Если мы запускаем наш проект на JDK 12, то все работает нормально, кроме шлюза оплаты.Если я понижаю версию JDK до версии 1.8, то все работает хорошо.Но я не хочу понижать мой JDK.

Возможно ли запустить часть кода в JDK 1.8, а другую - в JDK 12?Если да, то как?

Ответы [ 2 ]

3 голосов
/ 19 сентября 2019

Нет, это невозможно.Одно приложение Java может работать только на одной версии Java.

Если вы действительно не хотите переходить на Java 8, тогда единственный вариант - разделить приложение на две части и заставить эти приложения взаимодействовать через какой-то API.

0 голосов
/ 19 сентября 2019

Невозможно, чтобы одна JVM (и, следовательно, один веб-контейнер) запускали две версии Java одновременно.

Вот некоторые из ваших вариантов:

  • Запустите два отдельных веб-контейнера (JVM) и попросите их обмениваться данными через внутренний API.Это может быть много дополнительной работы.

  • Понизьте вашу работу разработчика до Java 8. Это также может быть много работы, или хуже.(У вас могут быть зависимости, которые доступны только для Java 11+.)

  • Попробуйте Java 11 вместо Java 8. Причина:

    • Java12 не является LTS-версией Java, но Java 11 есть.Поэтому более вероятно, что программное обеспечение шлюза Paytm будет работать на Java 11.

    • Разница между Java 11 и 12 для вашего приложения не так уж велика.Рассматривая сводку новых функций в Java 12, мы не увидим ничего, без чего вы бы не смогли обойтись ... до следующего выпуска Java LTS.

  • Узнайте, почему интеграция Paytm не работает в более поздней версии Java.На сайте Github, где распространяются файлы JAR, подразумевается, что версия «Java Kit 8» поддерживает Java 8 и более поздние версии .

    Возможно, проблема связана с поддержкой SSL в более поздних версиях Java.Возможно, вам нужно заставить Java 12 использовать более старую версию TLS, чтобы соответствовать ожидаемой службе удаленного шлюза.

    Возможно, в ваших файлах журнала есть подсказки;например, сообщения журнала, трассировки стека.

  • Избегайте использования проблемного (?) связывания Java и изменяйте свой код Java для непосредственного общения с веб-API Paytm, используя HttpClient или аналогичный.(На самом деле, попытка выяснить, можете ли вы сделать это с помощью Java 11/12 JVM , может помочь вам определить, в чем заключается проблема с привязкой привязки Java; например, если это проблема SSL.*

  • Обратитесь в службу поддержки Paytm ....

  • Найдите альтернативу Paytm с улучшенной поддержкой Java 11/12

...