Как включить неподдерживаемые параметры JVM в веб-запуска Java? - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть веб-приложение для запуска Java, которое принимает некоторые параметры через файл .jnlp, выполняет некоторый анализ и загружает результаты обратно на сервер.Он работает нормально, пока я запускаю его из NetBeans, используя

-Dcom.sun.security.enableAIAcaIssuers = true

в области параметров виртуальной машины.

Но он не работает при запуске с веб-страницы, запускаемой так:

deployJava.launchWebStartApplication('jws/CreoDimExtractor.jnlp');

Он работает успешно, пока не попадет в раздел загрузки, а затем завершится с ошибкой

"javax.ws.rs.ProcessingException: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: сбой при построении пути PKIX: sun.security.provider.certpath.SunCertPathBuilderException: невозможно найти действительныйпуть сертификации к запрошенной цели "

В моем файле .jnlp я включил опцию JVM, например, такую:

<resources>
        <!-- Application Resources -->
        <j2se version="1.7+" href="http://java.sun.com/products/autodl/j2se" java-vm-args="-Dcom.sun.security.enableAIAcaIssuers=true"/>
        <jar href="En360_SFtp.jar" main="true" />
</resources>

, и мне присвоено значение безопасности:

<security><all-permissions/></security>

Я прочитал здесь , что

«Новые безопасные свойства также можно определить по необходимости, добавив префикс имени свойства к« jnlp. »Или« javaws. »."

Так что я тоже попробовал

<resources>
        <!-- Application Resources -->
        <j2se version="1.7+" href="http://java.sun.com/products/autodl/j2se" java-vm-args="-Djnlp.com.sun.security.enableAIAcaIssuers=true"/>
        <jar href="En360_SFtp.jar" main="true" />
</resources>

Ни один из них не сработал.Я также читал, что

Элемент свойства определяет системное свойство, которое будет доступно через методы System.getProperty и System.setProperties.У него есть два обязательных атрибута: имя и значение.

Итак, в моем веб-приложении java для запуска я включил следующие строки:

ProcessBuilder pb = new ProcessBuilder(params);
Map<String, String> env = pb.environment();
env.put("com.sun.security.enableAIAcaIssuers","true");

Но это тоже не сработало.У меня нет идей.Любая помощь?

...