Mule连接到远程平面文件

时间:2015-11-02 22:06:12

标签: jdbc mule mule-studio

我是Mule的新手,我一直在努力解决一个简单的问题。我正在尝试使用Mule的通用数据库连接器通过我的Mule应用程序连接到位于远程桌面上的平面文件(.MDB,.DBF)。我在这里尝试了不同的东西:

  • 我正在使用StelsDBF和StelsMDB驱动程序进行JDBC连接。我尝试使用jdbc网址直接连接 - jdbc:jstels:mdb:host/path
  • 我还尝试使用远程桌面上的FileZilla服务器并在我的应用中使用jdbc网址通过FTP访问 - jdbc:jstels:dbf:ftp://user:password@host:21/path

这些似乎都不起作用,因为我总是得到连接异常。如果有人之前尝试过这个,那么最好的方法是什么?用Mule连接远程平面文件?非常感谢您对此的回应!

3 个答案:

答案 0 :(得分:0)

如果你想在Mule流程中加载文件的内容,你应该使用文件或FTP连接器,我不确定你的JDBC选项。

使用文件连接器,您可以访问本地文件(运行mule的服务器上的文件),您可以尝试将文件夹作为共享安装。 或者像你已经尝试的那样运行一个FTP服务器,这应该可行。 您的语法/连接可能有错误。

请粘贴您的Mule流程的完整XML,以便我们可以看到您要执行的操作。

答案 1 :(得分:0)

您的用例对我来说仍然不是很清楚,您是否真的计划每次使用http来触发数据库?无论如何,您是否尝试将文件放在本地路径上并在数据库URL中使用该路径。这里有人说他有工作,他创造了一个单独的豆子。 http://forums.mulesoft.com/questions/6422/setting_property_dynamically_on_jdbcdatasource.html

我认为本地路径可能是可能的,最好先测试一下。 另请注意如何引用文件路径,查看文件连接器的示例:https://docs.mulesoft.com/mule-user-guide/v/3.7/file-transport-reference#namespace-and-syntax

如果您设法使其工作并且您可以直接在JDBC URL中使用该路径,那么您应该查看poll范围。 https://docs.mulesoft.com/mule-user-guide/v/3.7/poll-reference 在包含在轮询范围内时,可以将数据库连接器用作入站端点。

答案 2 :(得分:0)

使用Mule Database Connector连接到Microsoft Access数据库(* .mdb,* .accdb)时遇到了同样的问题。经过进一步调查后,通过安装Microsoft Access Database Engine

解决了这个问题

另一个问题是,我无法传递参数来构建查询,就像我对其他数据库一样。例如:SELECT * FROM emplcopy WHERE id = #[payload.id]

要解决此问题:

  • 我将查询类型从Parameterized更改为Dynamic
  • 我在Set Payload变换器中生成了查询(以String的形式生成查询,例如:SELECT * FROM emplcopy WHERE id = '1')。
  • 最后,将其放入动态查询区域:#[payload]