Camel SSH コンポーネントで keyPairProvider オプションを指定する方法を提案できる人はいますか?
Camel SSH コンポーネントと KeyPairProvider オプションを使用して、リモート SSH サーバーに接続しようとしています。ドキュメントは、このオプションの使用方法、構文、または提供する必要がある値などについて明確ではありません。クラス名、完全なクラスパス、キーファイル名などを指定しようとしましたが、何も機能しません。私はいつも以下のエラーが発生します。
Caused by: java.lang.IllegalArgumentException: Could not find a suitable setter for property: keyPairProvider as there isn't a setter method with same type: java.lang.String nor type conversion possible: No type converter available to convert from type: java.lang.String to the required type: org.apache.sshd.common.KeyPairProvider with value file:com.example.tree.custom.CustomFileKeyPairProvider
at org.apache.camel.util.IntrospectionSupport.setProperty(IntrospectionSupport.java:555)
at org.apache.camel.util.IntrospectionSupport.setProperty(IntrospectionSupport.java:565)
at org.apache.camel.util.IntrospectionSupport.setProperties(IntrospectionSupport.java:453)
at org.apache.camel.util.EndpointHelper.setProperties(EndpointHelper.java:249)
at org.apache.camel.impl.DefaultComponent.setProperties(DefaultComponent.java:264)
at org.apache.camel.component.ssh.SshComponent.createEndpoint(SshComponent.java:47)
at org.apache.camel.impl.DefaultComponent.createEndpoint(DefaultComponent.java:120)
at org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:508)
... 18 more
これが私のルートです
from("direct:sshroute")
.to("ssh://sshuser1@10.115.136.176?keyPairProvider=com.example.tree.custom.CustomFileKeyPairProvider")
keyPairProvider を指定せず、パスワードを使用するようにルートを変更すると、正常に動作します。
また、独自の SSHComponent を作成し、CustomFileKeyPairProvider を設定して CamelContext に追加すると (テスト パッケージで指定されているように)、正常に動作することにも言及したいと思います。しかし、デフォルトの Camel コンポーネントを使用するかどうか、このオプションをどのように使用するかを知りたいだけです。
ありがとう - ラヴィ