Java RMI не найдено определение класса для java.sql.Statement - PullRequest
0 голосов
/ 26 июня 2019

Я запускаю загрузочное приложение Spring, написанное на Kotlin, в Docker-контейнере Java 11.Он запускается с помощью задачи Gradle Run.Я хотел добавить поддержку профилирования, поэтому я добавил следующие параметры запуска

    "-Dcom.sun.management.jmxremote",
    "-Dcom.sun.management.jmxremote.authenticate=false",
    "-Dcom.sun.management.jmxremote.ssl=false",
    "-Dcom.sun.management.jmxremote.port=34567",
    "-Dcom.sun.management.jmxremote.rmi.port=34567",
    "-Djava.rmi.server.hostname=0.0.0.0",

Теперь в журналах я вижу следующую обычную ошибку

Exception in thread "RMI TCP Connection(idle)" java.lang.NoClassDefFoundError: java/sql/Statement
at java.rmi/sun.rmi.transport.tcp.TCPConnection.close(TCPConnection.java:220)
at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:591)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:796)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:677)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:676)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)

в объявлении модулей gradleУ меня есть следующие модули

    "jdk.management",
    "jdk.management.rmi",
    "jdk.unsupported",
    "jdk.localedata",
    "java.instrument",
    "java.management",
    "java.sql",
    "java.rmi",
    "java.security.jgss",
    "java.desktop"

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

...