配置 Mule JPA 模块以使用 Eclipse Link 和 MySQL

2024-04-21

我正在尝试编写一个 Mule ESB 应用程序,它将 XML 文件读入域对象,然后使用 JPA 将该对象写入 MySQL 数据库。

我已经弄清楚了大部分所需的配置,但我遇到了一个问题,其中 Mule JPA 模块(https://github.com/mulesoft/mule-module-jpa https://github.com/mulesoft/mule-module-jpa)似乎没有提交 sql 查询。我已经设置了 Mule JPA 组件来刷新查询,我可以看到它们被写入 MySQL 常规日志,但 COMMIT 从未完成,因此数据从未被存储。似乎模块中 JPATransaction 类的 doCommit() 方法从未被调用过,我看不到它的任何日志输出。然而,事务似乎确实是使用同一类的bindResource 方法绑定的。这可以在日志中看到。

知道我在这里做错了什么吗?

骡子流:

<spring:beans>
        <spring:bean class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" id="dataSource">
            <spring:property name="driverClassName" value="com.mysql.jdbc.Driver" />
            <spring:property name="url" value="jdbc:mysql://localhost:3306/interoperability_layer?user=root&amp;password=***" />
            <spring:property name="defaultAutoCommit" value="true" />
        </spring:bean>

        <spring:bean class="org.springframework.orm.jpa.JpaTransactionManager" id="transactionManager">
            <spring:property name="entityManagerFactory" ref="entityManagerFactory"/>
        </spring:bean>

        <spring:bean id="jpaDialect" class="org.springframework.orm.jpa.vendor.EclipseLinkJpaDialect" />

        <spring:bean id="eclipseLinkVendor" class="org.springframework.orm.jpa.vendor.EclipseLinkJpaVendorAdapter">
            <spring:property name="databasePlatform" value="org.eclipse.persistence.platform.database.MySQLPlatform"/>
            <spring:property name="generateDdl" value="false"/>
            <spring:property name="showSql" value="false"/> 
        </spring:bean> 

        <spring:bean id="entityManagerFactory" name="Bean" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
            <spring:property name="dataSource" ref="dataSource" />
            <spring:property name="persistenceUnitName" value="org.jembi.openhim.jpa" />
            <spring:property name="jpaDialect" ref="jpaDialect" /> 
            <spring:property name="jpaVendorAdapter" ref="eclipseLinkVendor" />
            <spring:property name="packagesToScan" value="domain"/>
        </spring:bean>
    </spring:beans>
    <jpa:config name="Java_Persistence_API" entityManagerFactory-ref="entityManagerFactory" doc:name="Java Persistence API"/>
    <flow name="openhim-report-adapterFlow1" doc:name="openhim-report-adapterFlow1">
        <vm:inbound-endpoint exchange-pattern="request-response" path="processReport" doc:name="VM">
        </vm:inbound-endpoint>
        <component class="org.jembi.openhim.IndicatorReportXmlToObjectTransformer" doc:name="Store indicator reports"/>
        <logger message="Converted XML to Report object" level="INFO" doc:name="Logger"/>
        <transactional action="ALWAYS_BEGIN" doc:name="Transactional">
            <jpa:persist config-ref="Java_Persistence_API" entity-ref="#[payload:]" doc:name="Java Persistence API" flush="true"/>
        </transactional>
        <logger message="Saved Report object using JPA" level="INFO" doc:name="Logger"/>
        <scripting:component doc:name="Groovy">
            <scripting:script engine="Groovy"><![CDATA[message.payload = "";]]></scripting:script>
        </scripting:component>
        <http:response-builder status="201" doc:name="HTTP Response Builder" contentType="application/xml"/>
        <logger message="Sending HTTP responce" level="INFO" doc:name="Logger"/>
    </flow>

日志输出:

INFO  2013-09-02 16:17:21,601 [[openhim-report-adapter].connector.http.mule.default.receiver.02] org.mule.api.processor.LoggerMessageProcessor: Converted XML to Report object
DEBUG 2013-09-02 16:17:21,633 [[openhim-report-adapter].connector.http.mule.default.receiver.02] org.mule.module.jpa.adapters.JPAModuleProcessAdapter: Persisting: org.jembi.openhim.Report@1749c7ac
DEBUG 2013-09-02 16:17:21,634 [[openhim-report-adapter].connector.http.mule.default.receiver.02] org.mule.module.jpa.adapters.JPAModuleProcessAdapter: Executing JPA command with message: org.jembi.openhim.Report@1749c7ac, command: org.mule.module.jpa.command.Persist@6bf22341 and parameters: null
[EL Info]: 2013-09-02 16:17:21.663--ServerSession(1208128432)--EclipseLink, version: Eclipse Persistence Services - 2.5.0.v20130507-3faac2b
[EL Info]: connection: 2013-09-02 16:17:21.964--ServerSession(1208128432)--file:/home/ryan/MuleStudio/workspace/.mule/apps/openhim-report-adapter/classes_org.jembi.openhim.jpa login successful
DEBUG 2013-09-02 16:17:22,030 [[openhim-report-adapter].connector.http.mule.default.receiver.02] org.mule.module.jpa.JPATransaction: Binding JPA transaction: 621071ed-13da-11e3-a4cd-0907619c09d6
DEBUG 2013-09-02 16:17:22,043 [[openhim-report-adapter].connector.http.mule.default.receiver.02] org.mule.module.jpa.JPATransaction: Binding org.eclipse.persistence.internal.jpa.EntityManagerImpl@2eabef26 to org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean@19e1bfba
DEBUG 2013-09-02 16:17:22,044 [[openhim-report-adapter].connector.http.mule.default.receiver.02] org.mule.module.jpa.command.Persist: Persisting entity: org.jembi.openhim.Report@1749c7ac
INFO  2013-09-02 16:17:22,134 [[openhim-report-adapter].connector.http.mule.default.receiver.02] org.mule.api.processor.LoggerMessageProcessor: Saved Report object using JPA
INFO  2013-09-02 16:17:22,286 [[openhim-report-adapter].connector.http.mule.default.receiver.02] org.mule.api.processor.LoggerMessageProcessor: Sending HTTP responce
DEBUG 2013-09-02 16:17:22,289 [[openhim-report-adapter].connector.http.mule.default.receiver.02] com.mulesoft.mule.config.pool.MonitoredThreadPoolExecutor: Stats{totalTime=979.67, startTime=25637681310485, endTime=25638660979198}
DEBUG 2013-09-02 16:17:22,289 [[openhim-report-adapter].connector.http.mule.default.receiver.02] com.mulesoft.mule.config.pool.MonitoredThreadPoolExecutor: Finished Work: org.mule.execution.FlowProcessingPhase$1@7a670f8b. in Thread[[openhim-report-adapter].connector.http.mule.default.receiver.02,5,main]. Active tasks: 1 (2 threads in a pool)
DEBUG 2013-09-02 16:17:22,290 [[openhim-report-adapter].http.request.dispatch.8085.01] com.mulesoft.mule.config.pool.MonitoredThreadPoolExecutor: Stats{totalTime=1007.19, startTime=25637654077832, endTime=25638661269425}
DEBUG 2013-09-02 16:17:22,290 [[openhim-report-adapter].http.request.dispatch.8085.01] com.mulesoft.mule.config.pool.MonitoredThreadPoolExecutor: Finished org.mule.transport.http.HttpRequestDispatcherWork@b6edc37. in Thread[[openhim-report-adapter].http.request.dispatch.8085.01,5,main]. Active tasks: 0 (1 threads in a pool)

UPDATE

这是我的 persistence.xml 文件:

<persistence xmlns="http://java.sun.com/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
    version="2.0">
    <persistence-unit name="org.jembi.openhim.jpa" transaction-type="RESOURCE_LOCAL">
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>

        <class>org.jembi.openhim.Report</class>
        <class>org.jembi.openhim.Indicator</class>
        <class>org.jembi.openhim.DataElements</class>

        <properties>
            <property name="eclipselink.weaving" value="false"/>
        </properties>
    </persistence-unit>
</persistence>

其他人报告了一个类似问题 https://stackoverflow.com/questions/20565583/usage-of-mule-module-jpa-1-2-0-with-hibernate-in-3-4-0-ce-how-to-define-entitym使用 mule-module-jpa,则不维护该模块。另外,是否需要使用 eclipselink ?看看工作Mule-JPA 示例 https://github.com/gabrieldimech/mule-jpa-demo,这使用 Hibernate 代替。可以找到该示例的描述here http://www.ricston.com/blog/jpa-mule/.

HTH

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

配置 Mule JPA 模块以使用 Eclipse Link 和 MySQL 的相关文章

随机推荐

  • 如何设置 MySQL 以便与 C# 一起使用?

    我的任务是为旧网站创建一个新的前端 它是用 php oo 之前的版本 编写的 并使用 MySQL 数据库 主机提供 Net包 但不提供Ms Sql Server 这很好 因为数据库工作正常 但我真的想使用 Asp net 作为页面 然而 我
  • 在 NSMenuItem 中使用 NSProgressIndicator

    我正在尝试在状态栏菜单内使用 NSProgressIndicator 不确定 我使用 NSView 对象作为菜单项的视图 然后子视图进度指示器来显示它 但是每当我尝试调用 startAnimation 来获取进度时 什么也没有发生 当我尝试
  • 使用conftest.py 与从专用模块导入装置

    我最近开始熟悉 pytest 以及如何使用conftest py定义在我的测试中自动发现和导入的装置 我很清楚如何conftest py工作原理以及如何使用它 但我不确定为什么这在某些基本场景中被认为是最佳实践 假设我的测试是这样构建的 t
  • UITextView 可以容纳多少文本?

    我有一个不可编辑的UITextView显示用户输入的文本 如果文本很长会发生什么 它会让我的应用程序崩溃吗 我应该对文本进行分页吗 iPhone 网络浏览器 如 Safari Chrome 或 Firefox 如何处理此问题 有没有类似的东
  • 如何在Cloudant或CouchDB中使用skip参数?

    在 Cloudant 或 CouchDB 的索引中使用 Skip 参数是否存在潜在的性能损失 有更好的技术可以使用吗 The 在 CouchDB 中写入和查询 MapReduce 视图 http my safaribooksonline c
  • React antd 轮播方法

    我正在考虑使用antd轮播 但我还没有看到描述如何使用的示例goTo slideNumber dontAnimate 方法 我尝试过使用这个问题的答案带箭头的react js antd轮播 https stackoverflow com q
  • Xamarin 不尊重 JDK 位置 (VS2015)

    我无法在 Visual studio 2015 中构建 Xamarin 应用程序 因为 Xamarin 忽略配置的 JDK 位置 我将 Xamarin 配置为使用 JDK 1 8 但构建仍然失败 因为它使用的是我从计算机中删除的旧 JDK
  • 在 Linux (libusb-1.0) 上访问 USB 设备?

    我正在编写一个小程序 使用 Linux 上的 libusb 1 0 与特定 USB HID 产品 由供应商和产品 ID 标识 进行通信 现在 我必须以 root 身份运行该程序 因为 libusb 需要对 USB 设备节点的写访问权限 有没
  • UNIQUE 约束失败:accounts_user.username

    让我们开始解决问题 我有一个页面 我希望用户在其中填写有关自己的信息 并且我想保存该数据 但我收到这个错误 IntegrityError at accounts profile edit 1 change profile UNIQUE co
  • python 中两个字符串的 Anagram 测试

    这是问题 编写一个名为 test for anagrams 的函数 该函数接收两个字符串 参数 均由字母字符组成 返回 如果两个字符串是字谜词 则为 True 否则为 False 两个字符串是 如果一个字符串可以通过重新排列来构造 则为 a
  • Silverlight 异步单元测试

    我在使用 Silverlight 单元测试框架时遇到了一个奇怪的问题 每次执行的第一个方法都会失败 我使用完全相同的代码进行了第二次测试 并且通过了 第一次调用的奇怪之处在于 它实际上是在等待超时and then执行存储库调用 如果您关心的
  • 张量流 LSTM 模型中的 NaN 损失

    以下网络代码应该是经典的简单 LSTM 语言模型 一段时间后开始输出 nan 损失 在我的训练集上 这需要几个小时 而且我无法在较小的数据集上轻松复制它 但在认真的训练中 这种情况总是会发生 Sparse softmax with cros
  • Expect 脚本中 sudo 的问题

    我正在运行以下脚本 usr bin expect f set user lindex argv 0 set pass lindex argv 1 set PATH lindex argv 2 set INV PATH lindex argv
  • EXC_BAD_INSTRUCTION 将 UICollectionView 单元格数据传递给不同的 ViewController 时

    我有一个基于 Firebase 数据填充的 UICollectionView 我创建了填充 UICollectionView 的自定义单元格 import UIKit import Material class PollCell Colle
  • 切换到 .net core 3 端点路由后,身份 UI 不再工作

    在很难让我的区域显示端点路由之后 我设法在这个自我回答的线程中修复它 尽管不是以非常令人满意的方式 从 2 2 迁移到 3 0 后出现问题 默认工作但无法访问区域 是否有办法调试端点分辨率 https stackoverflow com q
  • 版本控制与错误跟踪软件的集成有多重要[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 目前我们使用 FogBugz 来跟踪问题 发现它没问题 我正在寻找其他东西 让最终用户能够与我们一起跟踪他们的案例 以及实际上与电子邮件配合良好
  • 悬停在动画元素上不一致

    我正在使用 css 围绕圆形路径旋转 div 并且我想让它在悬停时改变颜色 请参阅此处的演示 http jsfiddle net gg7tnueu 1 http jsfiddle net gg7tnueu 1 html body heigh
  • Twitter Bootstrap 下拉菜单不起作用

    我知道 Stack Overflow 上有很多类似的问题 我已经查看过它们 但我的下拉菜单仍然不起作用 这是我的代码 div class navbar navbar inverse navbar fixed top div class na
  • 如何制作这个构造函数的深层复制?

    我制作了这个构造函数 我需要对其进行深层复制 我不太明白深拷贝的含义 我知道它会创建一个拥有自己的动态内存的对象的独立副本 但我不明白这样做的需要是什么 我也不确定如何实际实现深层复制 有什么建议么 这是我需要进行深层复制的构造函数 任何人
  • 配置 Mule JPA 模块以使用 Eclipse Link 和 MySQL

    我正在尝试编写一个 Mule ESB 应用程序 它将 XML 文件读入域对象 然后使用 JPA 将该对象写入 MySQL 数据库 我已经弄清楚了大部分所需的配置 但我遇到了一个问题 其中 Mule JPA 模块 https github c