我是Mule的新手,我一直在努力解决一个简单的问题。我正在尝试使用Mule的通用数据库连接器通过我的Mule应用程序连接到位于远程桌面上的平面文件(.MDB,.DBF)。我在这里尝试了不同的东西:
jdbc:jstels:mdb:host/path
jdbc:jstels:dbf:ftp://user:password@host:21/path
这些似乎都不起作用,因为我总是得到连接异常。如果有人之前尝试过这个,那么最好的方法是什么?用Mule连接远程平面文件?非常感谢您对此的回应!
答案 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]