Java 17, Spring Boot 3.3.1, Graalvm 22.3.3. Тот же код или маршрут с sftp отлично работает с Spring Boot Maven Jar. т. е. учетные данные SFTP верны.
Я получаю эту ошибку только при использовании Spring Boot «Native» Jar, созданного с помощью Graalvm Java с помощью команды ниже
./mvnw clean -Pnative native:compile
- Используется Java версии openjdk «17.0.8» от 18 июля 2023 г.
- Среда выполнения OpenJDK GraalVM CE 22.3 .3 (сборка 17.0.8+7-jvmci-22.3-b22)
- 64-разрядная серверная виртуальная машина OpenJDK GraalVM CE 22.3.3 (сборка 17.0.8+7-jvmci-22.3- b22, смешанный режим, совместное использование)
- com.jcraft.jsch .jce.HMACSHA1
- com.jcraft.jsch.jce.Random
- com.jcraft.jsch.jce.AES128CTR
- com.jcraft.jsch.DHEC256
- com.jcraft.jsch.jce.SHA256
- com.jcraft.jsch.jce .ECDHN
- com.jcraft.jsch.jce.SignatureRSASHA512
- com.jcraft.jsch.jce.HMACSHA256ETM
- com.jcraft.jsch.UserAuthNone
Путь:
from("file:/home/temp/test/src").routeId("Encrypted Route")
.log ("Start: ${headers.CamelFileName}: ${headers.CamelFileLength} bytes")
.to("sftp://testuser@testserver.amd.com/home/temp/test/src?password=RAW(XXXXXXXX)")
.log ("End: ${headers.CamelFileName}, ${headers.CamelFileLength} bytes ");
Трассировка стека исключений:
org.apache.camel.component.file.GenericFileOperationFailedException: Cannot connect to sftp://testuser@testserver.amd.com:22
at org.apache.camel.component.file.remote.SftpOperations.connect(SftpOperations.java:139)
at org.apache.camel.component.file.remote.RemoteFileProducer.connectIfNecessary(RemoteFileProducer.java:184)
at org.apache.camel.component.file.remote.RemoteFileProducer.preWriteCheck(RemoteFileProducer.java:133)
at org.apache.camel.component.file.GenericFileProducer.processExchange(GenericFileProducer.java:116)
at org.apache.camel.component.file.remote.RemoteFileProducer.process(RemoteFileProducer.java:61)
at org.apache.camel.support.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:65)
at org.apache.camel.processor.SendProcessor.lambda$process$2(SendProcessor.java:239)
at org.apache.camel.support.cache.DefaultProducerCache.doInAsyncProducer(DefaultProducerCache.java:281)
at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:238)
at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$SimpleTask.handleFirst(RedeliveryErrorHandler.java:462)
at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$SimpleTask.run(RedeliveryErrorHandler.java:438)
at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.doRun(DefaultReactiveExecutor.java:199)
at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.executeReactiveWork(DefaultReactiveExecutor.java:189)
at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.tryExecuteReactiveWork(DefaultReactiveExecutor.java:166)
at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:148)
at org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:59)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:163)
at org.apache.camel.impl.engine.CamelInternalProcessor.processNonTransacted(CamelInternalProcessor.java:355)
at org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:331)
at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:491)
at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:244)
at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:205)
at org.apache.camel.support.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:204)
at org.apache.camel.support.ScheduledPollConsumer.run(ScheduledPollConsumer.java:118)
at java.base@17.0.8/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base@17.0.8/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
at java.base@17.0.8/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
at java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base@17.0.8/java.lang.Thread.run(Thread.java:833)
at org.graalvm.nativeimage.builder/com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:775)
at org.graalvm.nativeimage.builder/com.oracle.svm.core.posix.thread.PosixPlatformThreads.pthreadStartRoutine(PosixPlatformThreads.java:203)
Caused by: com.jcraft.jsch.JSchException: Auth fail for methods 'publickey,gssapi-keyex,gssapi-with-mic,password'
at com.jcraft.jsch.Session.connect(Session.java:520)
at org.apache.camel.component.file.remote.SftpOperations.tryConnect(SftpOperations.java:162)
at org.apache.camel.support.task.BlockingTask.lambda$run$0(BlockingTask.java:40)
at org.apache.camel.support.task.ForegroundTask.run(ForegroundTask.java:94)
at org.apache.camel.support.task.BlockingTask.run(BlockingTask.java:40)
at org.apache.camel.component.file.remote.SftpOperations.connect(SftpOperations.java:137)
... 31 common frames omitted
Подробнее здесь: https://stackoverflow.com/questions/788 ... th-mic-pas