2015-11-02 29 views
2

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

  • 我正在使用StelsDBF和StelsMDB驱动程序进行JDBC连接。我试图直接连接使用JDBC URL - jdbc:jstels:mdb:host/path
  • 我也试图通过使用远程桌面上的FileZilla服务器,并在我的应用程序使用JDBC URL通过FTP访问 - jdbc:jstels:dbf:ftp://user:[email protected]:21/path

这些都不似乎工作作为我总是得到Connection异常。如果有人以前尝试过,那么最好的方法是什么?连接远程平面文件与穆勒?您对此的回应将不胜感激!

回答

0

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

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

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

0

你的用例对我来说还不是很清楚,你真的打算使用http来每次触发DB吗?无论如何,你是否尝试将文件放在本地路径上并在数据库url中使用该路径。这里有人说他有工作,他创建了一个单独的bean。 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中使用的路径,你应该有一个看看民意调查的范围。 https://docs.mulesoft.com/mule-user-guide/v/3.7/poll-reference 您可以将数据库连接器作为入站端点封装在轮询范围中时使用。

+0

感谢您的答复。是的,我将为此使用轮询范围,http连接器仅用于测试目的。所以我做了你所说的,我能够连接到本地的dbf文件,它工作正常。任何想法可以为远程文件做什么?再次感谢您在这方面的所有帮助。 –

+0

我不知道FTP,应该工作的解决方法是当您安装networkshare。您可以像现在一样从本地文件系统访问它。 – JoostD

+0

不幸的是,我无法为这些文件构建网络共享,因为它们位于具有防火墙和其他安全功能的远程服务器上。我所能做的就是尝试以某种方式挂接到该服务器(FTP或通用数据库配置)以访问这些文件。他们在防火墙上打开了必要的端口,所以即使这不是问题。 –

0

我经历用骡子数据库连接器相同的问题,当连接到Microsoft Access数据库(* .MDB,* .ACCDB)。经过进一步调查,它通过安装Microsoft Access Database Engine

另一个问题解决了,我不能错过的参数来构建查询作为同我的其他数据库做。例如为:SELECT * FROM emplcopy WHERE id = #[payload.id]

要解决此问题:

  • 我改变了查询类型从ParameterizedDynamic
  • 我在Set Payload转换器中生成查询(以String的形式生成查询,例如:SELECT * FROM emplcopy WHERE id = '1')。
  • 最后,把它放到动态查询区:#[payload]