Apache Camel SFTPConfiguration Spring XML
Apache Camel SFTPConfiguration with Spring XML
我正在开发一个使用带有 SFTP 端点的 Apache Camel 的遗留应用程序。
Camel 上下文使用 Spring Xml Dsl 定义,例如
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:camel="http://camel.apache.org/schema/spring"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
<camel:camelContext id="myCtx" errorHandlerRef="eventDLQ"
xmlns="http://camel.apache.org/schema/spring"
autoStartup="true">
<camel:endpoint id="sftp1" uri="sftp://ftp1@example"/>
<camel:endpoint id="sftp2" uri="sftp://ftp2@example"/>
</camel:camelContext>
</beans>
我需要使用 SFTPConfiguration 对象配置 Camel SFTP
但不知道如何连接它,因为我正在使用 Spring.
我可以使用 Spring 在 XML 文件中创建 bean 并且 Camel 会自动检测它吗?
嗯,是的,如果路由在相同范围内可用,即在您的情况下在相同上下文中。我希望您知道,如果您使用的是 SFTP,那么您还需要在 java 密钥库中导入导入 SFTP 证书。远程文件配置应声明为选项作为端点中的参数。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:camel="http://camel.apache.org/schema/spring"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
<camel:camelContext id="myCtx" errorHandlerRef="eventDLQ"
xmlns="http://camel.apache.org/schema/spring"
autoStartup="true">
<camel:endpoint id="sftp1" uri="sftp://ftp1@example"/>
<camel:endpoint id="sftp2" uri="sftp://ftp2@example"/>
<route>
<from ref="sftp1"/>
<to uri="mock:result"/>
</route>
<route>
<from ref="sftp2"/>
<to uri="mock:result"/>
</route>
</camel:camelContext>
</beans>
您可以创建 bean 并将其传递给 camel-endpoint 以及引用。
<bean class="org.apache.camel.component.file.remote.SftpConfiguration" id="sftpConfig">
<property name="jschLoggingLevel" value="WARN"/>
<property name="strictHostKeyChecking" value="no"/>
</bean>
注意:您可以使用此处提供的所有选项 - Link
<bean class="org.apache.camel.component.file.remote.SftpEndpoint" id="sftpEndpoint">
<property name="configuration" ref="sftpConfig" />
</bean>
我不确定您使用的是哪个版本的 camel 您可以查看 FTPCompnent src 并相应地将 sftpEndpoint 引用传递给它。
我正在开发一个使用带有 SFTP 端点的 Apache Camel 的遗留应用程序。 Camel 上下文使用 Spring Xml Dsl 定义,例如
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:camel="http://camel.apache.org/schema/spring"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
<camel:camelContext id="myCtx" errorHandlerRef="eventDLQ"
xmlns="http://camel.apache.org/schema/spring"
autoStartup="true">
<camel:endpoint id="sftp1" uri="sftp://ftp1@example"/>
<camel:endpoint id="sftp2" uri="sftp://ftp2@example"/>
</camel:camelContext>
</beans>
我需要使用 SFTPConfiguration 对象配置 Camel SFTP 但不知道如何连接它,因为我正在使用 Spring.
我可以使用 Spring 在 XML 文件中创建 bean 并且 Camel 会自动检测它吗?
嗯,是的,如果路由在相同范围内可用,即在您的情况下在相同上下文中。我希望您知道,如果您使用的是 SFTP,那么您还需要在 java 密钥库中导入导入 SFTP 证书。远程文件配置应声明为选项作为端点中的参数。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:camel="http://camel.apache.org/schema/spring"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
<camel:camelContext id="myCtx" errorHandlerRef="eventDLQ"
xmlns="http://camel.apache.org/schema/spring"
autoStartup="true">
<camel:endpoint id="sftp1" uri="sftp://ftp1@example"/>
<camel:endpoint id="sftp2" uri="sftp://ftp2@example"/>
<route>
<from ref="sftp1"/>
<to uri="mock:result"/>
</route>
<route>
<from ref="sftp2"/>
<to uri="mock:result"/>
</route>
</camel:camelContext>
</beans>
您可以创建 bean 并将其传递给 camel-endpoint 以及引用。
<bean class="org.apache.camel.component.file.remote.SftpConfiguration" id="sftpConfig">
<property name="jschLoggingLevel" value="WARN"/>
<property name="strictHostKeyChecking" value="no"/>
</bean>
注意:您可以使用此处提供的所有选项 - Link
<bean class="org.apache.camel.component.file.remote.SftpEndpoint" id="sftpEndpoint">
<property name="configuration" ref="sftpConfig" />
</bean>
我不确定您使用的是哪个版本的 camel 您可以查看 FTPCompnent src 并相应地将 sftpEndpoint 引用传递给它。