mysql - 将文件插入 mysql db MuleESB enterprise

标签 mysql mule enterprise mule-studio

我需要将 .csv 文件插入到 MYSQL 数据库中。网络上的所有示例,给我“已弃用的数据库”,然后没有解决方案!

HTML 入站端点是使用 postman 插件 (chrome) 发送 csv 文件。运行应用程序时,控制台显示此警告:

org.mule.routing.ExpressionSplitter: Splitter returned no results. If this is not expected, please check your split expression

即使我在字节数组到字符串之后添加一个拆分器,并且表达式是#[xpath('//item')],它仍然显示相同的警告!

我有 MuleESB 企业版。所有与数据库的连接都是正确的。

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:jdbc-ee="http://www...
    <db:mysql-config name="MySQL_Configuration" host="localhost"
        port="3306"   database="dbflow"
        doc:name="MySQL Configuration" user="root"/>
    <data-mapper:config name="CSV_To_XML" transformationGraphPath="csv_to_xml.grf" doc:name="CSV_To_XML"/>
    <jdbc-ee:mysql-data-source name="MySQL_Data_Source" user="User" password="Pass" url="jdbc:mysql://localhost:3306/dbflow" transactionIsolation="UNSPECIFIED" doc:name="MySQL Data Source"/>
    <jdbc-ee:connector name="Database" dataSource-ref="MySQL_Data_Source" validateConnections="true" queryTimeout="-1" pollingFrequency="0" doc:name="Database"/>
    <flow name="dbFlow1" doc:name="dbFlow1">
 <http:inbound-endpoint exchange-pattern="one-way" host="localhost" port="8084" path="csv" doc:name="HTTP"/>
        <data-mapper:transform config-ref="CSV_To_XML" doc:name="CSV To XML"/>
        <byte-array-to-string-transformer doc:name="Byte Array to String"/>

        <foreach collection="#[xpath('//info')]" doc:name="For Each">
            <mulexml:dom-to-xml-transformer doc:name="DOM to XML"/>
            <db:insert config-ref="MySQL_Configuration" doc:name="Database">
                <db:parameterized-query><![CDATA[INSERT INTO `dbflow`.`user_table`
(`current_date`,
`serialnumber`,
`gender`,
`fullname`,
`birthdate`,
`email`,
`mobilnumber`,
`address`)
VALUES
(#[xpath://date],
#[xpath://serialnumber],
#[xpath://gender],
#[xpath://fullname],
#[xpath://birthdate],
#[xpath://email],
#[xpath://mobilenumber],
#[xpath://address]
);]]></db:parameterized-query>

            </db:insert>

        </foreach>

    </flow>
</mule>

最佳答案

从讨论来看,核心问题似乎是 HTTP POST 内容最终会生成此 XML:

<?xml version="1.0" encoding="UTF-8"?>
<infos/>

这解释了为什么 for-each 不产生任何东西。

解决方案包括 HTTP POSTing 一个有效的非空 CSV 实体。

关于mysql - 将文件插入 mysql db MuleESB enterprise,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24852788/

相关文章:

javascript - 单击“应用”按钮并插入到另一个表中时从面板获取名称

eclipse - Mule 和 Eclipse 的 WSDL 问题

routes - Mule 子流程与处理器链

mysql - 在 mySql 查询中获取随机值

php - 数据显示来自4个表mysql

mysql - SQL 语句返回应通过的步骤列表中的当前步骤以及进程是否已结束

java - 使用 log4j 在 mule 中自定义日志文件名

iOS 企业配置文件到期

ios - Xcode 6 Save for Enterprise Deployment 不再为 ipa 创建 plist?