【问题标题】:SFTP JCA Connector?SFTP JCA 连接器?
【发布时间】:2011-10-08 04:32:53
【问题描述】:

我正在构建一个在 JBoss 6.x 上运行的 Spring 3.0 应用程序。我需要我的应用程序通过 sftp 访问文件(获取和放置)。以前从未这样做过,我做了一些研究,发现 Spring-Integration 支持 sftp。但是,该项目的架构师坚持认为连接必须来自容器,而不是来自应用程序。

因此,我发现自己正在搜索 SFTP JCA,但找不到任何有价值的东西。我确实遇到了txconnect.sourceforge.net,但该库似乎没有积极的开发并且不支持 ssh 密钥(仅用户名/密码)。

有什么我可以使用的吗?在 Google 上搜索一无所获。 Spring 可以配置为 JBoss 的 JCA 吗?我还需要别的吗?

谢谢! 埃里克

【问题讨论】:

  • 这听起来像是一个过于复杂的解决方案。 JCA 是一个复杂的野兽。你不能直接使用 SFTP 库,别管 Spring Integration 或 JCA?
  • 很抱歉 - 直接使用 sftp 库是什么意思?让应用程序本身打开套接字来传输文件的问题在于,它违反了 J2EE 最佳实践,其中它是启动所有套接字 io 的容器。将 sftp 库直接插入应用程序可以绕过这种方法,并可能在集群环境中导致问题。
  • 根据我的经验,“J2EE 最佳实践”是矛盾的。我的建议是选择可行的方法。

标签: java spring sftp jboss6.x jca


【解决方案1】:

我对您的要求的理解是,您需要打开从在 JBOSS 中运行的应用到远程系统的 ssh 连接,以便从那里下载和上传文件。

在我看来,您不需要 JCA 适配器。我不是 Spring 方面的专家,但既然你在谈论 JBOSS,我可以告诉你,任何 EE6 应用程序都禁止打开服务器套接字(监听),但允许打开客户端套接字。

如果您想在您的应用中模拟 SSH 服务器功能,那么您需要实现 JCA 适配器,但在您的情况下不需要。

【讨论】:

    【解决方案2】:

    一件普遍的事情:从长远来看,坚持你的规范是明智的,除非你真的知道它对你的项目意味着什么。

    所以,如果你确定你想/必须使用 JCA,这里有一些东西:

    快速搜索给了我两个连接器:

    1. http://sourceforge.net/projects/jca-for-ssh/
    2. http://jca-for-ssh.sourceforge.net

    它们似乎没有那么成熟,虽然我自己没有使用它们。

    您需要连接器做什么?如果只是简单的事情,你也可以自己写一个。 例如:您需要事务支持吗?是否需要同时支持入站和出站连接?

    如果您还有其他问题,请告诉我:-)

    【讨论】:

    • 我刚刚找到另一个链接:link。那里还没有源代码,但看起来很有希望,所以你应该给这些人发一封邮件,询问他们的 SFTP RA。
    【解决方案3】:

    有点牵强,但https://www.advantco.com/product/adapter/sftp 提供了他们声称的本机 JCA 适配器,它插入现有的 J2EE 适配器框架,但似乎针对 SAP NetWeaver 框架,所以不知道 JBoss 集成会带来怎样的运气。

    【讨论】:

    • 感谢您的提示。我尝试联系他们,但他们的适配器是特定于 SAP 的,而他们的其他产品是独立应用程序;不是 jca。
    猜你喜欢
    • 1970-01-01
    • 2011-10-08
    • 1970-01-01
    • 1970-01-01
    • 2012-10-10
    • 2021-07-26
    • 2011-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多