我有一个关于窃听和jpa-camel组件的问题。我有一个通过窃听拆分的异步路由。在每个路由中,我使用一个jpa生产者来持久化一个实体。问题是,在异步路由到达终点之前,entityManager已关闭。原因是异步路由中使用了相同的entityManager。主路由到达终点并关闭entityManager。
例如,如以下路线:
<route id="mainRoute>
<from uri="direct:restendpoint"/>
...
<to uri="jpa:MyEntity"/>
...
<loop copy="true">
...
<wireTap uri="direct:asyncroute"/>
</loop>
</route>
<route id="asyncRoute">
<from uri="direct:asyncroute"/>
...
<to uri="jpa:MyEntity"/>
...
</route>
我认为一个可能的解决方案是检查entitymanager是否为null或已关闭。如果为null或已关闭,请创建新的entitymanager。
public final class JpaHelper {
...
public static EntityManager getTargetEntityManager(Exchange exchange, ...
...
if (em == null || !em.isOpen()) {
// create a new entity manager
em = entityManagerFactory.createEntityManager();
...
}
}
...
}
另一个解决方案是窃听。在复制交换的地方,可以删除“CamelEntityManager”属性。
我的快速修复:在异步路由的开始,我从交换中删除了entityManager。
我使用Camel 2.15.2和Spring Boot 1.2.3。释放
有人知道更好的解决方案吗?
这个问题在Camel v.2.16中得到了解决。见文件
问题内容: 我有一个对象,该对象具有对另一个对象的循环引用。考虑到这些对象之间的关系,这是正确的设计。 为了显示 不出所料,当我尝试使用Json序列化计算机或客户对象时遇到了一个问题。我不确定是如何解决此问题的,因为我不想破坏计算机和客户对象之间的关系。解决此问题有哪些选择? 编辑 目前,我正在使用Controller基类提供的Json方法。因此,我正在做的序列化基本如下: 问题答案: 更新: 不
对于range(),我有一个非常奇怪的问题;根据文件: 但当我这样做时: 甚至 输出奇怪地以一系列的方式重复 这意味着它将返回到每个循环后的第一个ID。 当我只是放置一个手动数组时,它的工作非常有序,没有重复: 我做错了什么(又一次??) 编辑I 下面是整个脚本: http://pastebin.com/zhm3ub6n 它实际上是simplehtmldom脚本中包含的slashdot刮取示例的稍
我做了一些测试,看看如何将combobox绑定到一些bean属性,但我得到了一个异常:“ConversionException:无法将值转换为字符串在..........”我的示例在使用组合框的indexedContainer时工作正常,但是在使用BeanItem容器时遇到了一些问题。我所拥有的:1。TestCountry,BeanItemContainer的简单java bean(为了简单起见,
问题内容: 我正在尝试使用jQuery的循环来遍历此JSON并将其添加到named中。JSON如下: 我通过使用以下代码获取此JSON: 有什么办法吗? 问题答案: 尝试(未试用): 我想了三个独立的循环,因为您可能希望对每个数据集进行不同的处理(justIn,recent,old)。如果没有,您可以执行以下操作:
问题内容: 有人可以解释吗? 什么是 […]? 问题答案: 只是Python告诉您您有一个循环引用。它足够聪明,不会进入尝试打印出来的无限循环。
问题内容: 我需要创建一个包含100个数字(1-100)的数组,然后计算所有数字将是多少(1 + 2 + 3 + 4 + .. + 100 =总和)。 我不想手动将这些数字输入到数组中,因为要花100个点才能花费一些时间,并且花费更多的代码。 我在想像使用变量++直到100,然后计算所有这些的总和。不知道将如何写。但是,它在数组中很重要,因此我以后也可以说“数组55多少钱”,我可以很容易地看到它。