我在JBoss app服务器上运行这个简单的REST服务,效果很好。目前,该服务有一个@GET方法(getAllPeople),它与mysql数据库建立JDBC连接,以检索一些数据(SELECT名称,地址FROM Person)。
我的团队负责人希望我尝试使用Mule ESB,并以此简单项目为出发点。我对如何使用Mule流程进行此操作感到困惑。我使用HTTP入站点,REST组件和JDBC组件设置我的流程,如下所示:
我将JDBC组件配置为使用MySQL,并向其添加了一个查询(SELECT名称,地址FROM Person)。
问题:我的REST服务@GET方法中的代码仍然使用JDBC直接连接到数据库。我想我需要更改它,而是调用Mule JDBC数据源,但我不知道如何做到这一点。我需要在REST服务@GET方法中使用什么代码来使用Mule JDBC组件,并获得结果?我试图了解组件如何相互通信。
编辑:新想法 - 是否应该使用ESB将单个系统的不同组件链接在一起,例如REST服务,SOAP服务和JDBC数据源,或者ESB是否应仅用于将完全独立的系统连接在一起?答案 0 :(得分:0)
要使您的简单示例正常工作,只需删除REST组件并在JDBC组件之后添加一个Object to JSON转换器。然后,您的流将以JSON格式返回查询结果。
答案 1 :(得分:0)
我们可以在这里使用mule来调用其余的api,rest api会返回一些可能不够的数据。为了根据rest调用的结果(由JsontoObject转换)从db获取更多数据,可以使用jdbc连接器。在你的情况下,如果你想调用最终调用数据库的rest api,你将得到json或xml,可以将其转换为将数据发送到outbounds。
谢谢 -
答案 2 :(得分:0)
我不确定你为什么要休息'中间的组件。可能不需要。最简单的是拥有http和变换器(将数据从http转换为/来自)和jdbc组件。使用这种方法,您将在JBoss App Server中留下现有的ReST服务。
我认为在发布的图片中,您尝试在Jboss App Server中调用预先存在的ReST服务,这可能不需要。您可以简单地模仿现有服务的功能。或者您可以认为现有服务和新的mule服务可以充当代理服务 - 在这种情况下,不需要JDBC组件。