Ошибка затмения во время запуска - PullRequest
0 голосов
/ 03 мая 2018

Я пытался переместить свой проект с Java 7 на 8. Когда я начинаю отлаживать свой проект с помощью wildfly11, он показывает эту ошибку, и мое развертывание не удается.

 DEBUG [io.undertow] (MSC service thread 1-7) JDK9 ALPN not supported: java.lang.NoSuchMethodException: javax.net.ssl.SSLParameters.setApplicationProtocols([Ljava.lang.String;)
at java.lang.Class.getMethod(Unknown Source) [rt.jar:1.8.0_31]
at io.undertow.protocols.alpn.JDK9AlpnProvider$1.run(JDK9AlpnProvider.java:47) [undertow-core-1.4.18.Final.jar:1.4.18.Final]
at io.undertow.protocols.alpn.JDK9AlpnProvider$1.run(JDK9AlpnProvider.java:43) [undertow-core-1.4.18.Final.jar:1.4.18.Final]
at java.security.AccessController.doPrivileged(Native Method) [rt.jar:1.8.0_31]
at io.undertow.protocols.alpn.JDK9AlpnProvider.<clinit>(JDK9AlpnProvider.java:43) [undertow-core-1.4.18.Final.jar:1.4.18.Final]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [rt.jar:1.8.0_31]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) [rt.jar:1.8.0_31]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) [rt.jar:1.8.0_31]
at java.lang.reflect.Constructor.newInstance(Unknown Source) [rt.jar:1.8.0_31]
at java.lang.Class.newInstance(Unknown Source) [rt.jar:1.8.0_31]
at java.util.ServiceLoader$LazyIterator.nextService(Unknown Source) [rt.jar:1.8.0_31]
at java.util.ServiceLoader$LazyIterator.next(Unknown Source) [rt.jar:1.8.0_31]
at java.util.ServiceLoader$1.next(Unknown Source) [rt.jar:1.8.0_31]
at io.undertow.protocols.alpn.ALPNManager.<init>(ALPNManager.java:40) [undertow-core-1.4.18.Final.jar:1.4.18.Final]
at io.undertow.protocols.alpn.ALPNManager.<clinit>(ALPNManager.java:35) [undertow-core-1.4.18.Final.jar:1.4.18.Final]
at io.undertow.server.protocol.http.AlpnOpenListener.<init>(AlpnOpenListener.java:68) [undertow-core-1.4.18.Final.jar:1.4.18.Final]
at io.undertow.server.protocol.http.AlpnOpenListener.<init>(AlpnOpenListener.java:90) [undertow-core-1.4.18.Final.jar:1.4.18.Final]
at io.undertow.server.protocol.http.AlpnOpenListener.<init>(AlpnOpenListener.java:82) [undertow-core-1.4.18.Final.jar:1.4.18.Final]
at org.wildfly.extension.undertow.HttpsListenerService.createAlpnOpenListener(HttpsListenerService.java:101) [wildfly-undertow-11.0.0.Final.jar:11.0.0.Final]
at org.wildfly.extension.undertow.HttpsListenerService.createOpenListener(HttpsListenerService.java:86) [wildfly-undertow-11.0.0.Final.jar:11.0.0.Final]
at org.wildfly.extension.undertow.ListenerService.start(ListenerService.java:160) [wildfly-undertow-11.0.0.Final.jar:11.0.0.Final]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:2032) [jboss-msc-1.2.7.SP1.jar:1.2.7.SP1]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1955) [jboss-msc-1.2.7.SP1.jar:1.2.7.SP1]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [rt.jar:1.8.0_31]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [rt.jar:1.8.0_31]
at java.lang.Thread.run(Unknown Source) [rt.jar:1.8.0_31]

Заранее спасибо.

1 Ответ

0 голосов
/ 03 мая 2018

Прежде всего, нет поддержки Application Layer Protocol Negotiation(ALPN) в Java 7 или 8. В документации класса SSLParameters нет такого метода setApplicationProtocols() для Java 7 и Java 8 . Интересно, как ваш проект может работать в Java 7 без метода setApplicationProtocols()?

Однако, начиная с Java 9, ALPN стал частью стандарта Java SE. Вы можете найти документацию для setApplicationProtocols() здесь .

Если вы не хотите обновляться до Java 9 и по-прежнему использовать ALPN, вы можете перейти к проекту Jetty, который предоставляет библиотеку с поддержкой ALPN. Загрузочный файл Jetty ALPN работает как с OpenJDK, так и с Oracle JDK (который основан на OpenJDK). Уже есть вопрос о SO, если вы обнаружите какие-либо проблемы с настройкой баночки ALPN Jetty.

...