- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用kundera作为apachestorm的dao层,将数据存储在cassandra数据库中。我的拓扑创建没有任何问题,我可以接收消息,但是当我尝试将数据存储在数据库中时,我收到消息:
26240 [main-EventThread] INFO o.a.s.s.o.a.c.f.s.ConnectionStateManager - State change: CONNECTED
26275 [main] INFO o.a.s.d.supervisor - Starting supervisor with id 1db18608-a2df-47e0-8ae6-cc634c90f81d at host 10.0.0.4
26308 [main] ERROR o.a.s.s.o.a.z.s.NIOServerCnxnFactory - Thread Thread[main,5,main] died
java.lang.IllegalStateException: Bolt 'bolt1' contains a non-serializable field of type com.impetus.kundera.persistence.EntityManagerImpl, which was instantiated prior to topology creation. com.impetus.kundera.persistence.EntityManagerImpl should be instantiated within the prepare method of 'bolt1 at the earliest.
at org.apache.storm.topology.TopologyBuilder.createTopology(TopologyBuilder.java:127) ~[storm-core-1.0.0.jar:1.0.0]
at topology.ConnectorTopology.main(ConnectorTopology.java:52) ~[Zorro-0.0.1-SNAPSHOT-jar-with-dependencies.jar:?]
Caused by: java.lang.RuntimeException: java.io.NotSerializableException: com.impetus.kundera.persistence.EntityManagerImpl
at org.apache.storm.utils.Utils.javaSerialize(Utils.java:167) ~[storm-core-1.0.0.jar:1.0.0]
at org.apache.storm.topology.TopologyBuilder.createTopology(TopologyBuilder.java:122) ~[storm-core-1.0.0.jar:1.0.0]
... 1 more
Caused by: java.io.NotSerializableException: com.impetus.kundera.persistence.EntityManagerImpl
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1183) ~[?:1.7.0_99]
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547) ~[?:1.7.0_99]
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508) ~[?:1.7.0_99]
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431) ~[?:1.7.0_99]
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177) ~[?:1.7.0_99]
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547) ~[?:1.7.0_99]
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508) ~[?:1.7.0_99]
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431) ~[?:1.7.0_99]
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177) ~[?:1.7.0_99]
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547) ~[?:1.7.0_99]
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508) ~[?:1.7.0_99]
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431) ~[?:1.7.0_99]
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177) ~[?:1.7.0_99]
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347) ~[?:1.7.0_99]
at org.apache.storm.utils.Utils.javaSerialize(Utils.java:163) ~[storm-core-1.0.0.jar:1.0.0]
at org.apache.storm.topology.TopologyBuilder.createTopology(TopologyBuilder.java:122) ~[storm-core-1.0.0.jar:1.0.0]
... 1 more
在topologybuilder类中我有:
brokerSpout = new BrokerSpout(rabbitMQAMQP);
builder.setSpout("spout1", brokerSpout);
printerbolt = new PrinterBolt();
builder.setBolt("bolt1", printerbolt).shuffleGrouping("spout1");
在我的类 dao 中(它实现了可序列化接口(interface))
private EntityManager em;
@Transient
private EntityManagerFactory emf;
public SensorDAOImpl() {
// TODO Auto-generated constructor stub
emf = Persistence.createEntityManagerFactory("cassandra_pu");
em = emf.createEntityManager();
}
@Override
public void insert(Object entity)
{
em.persist(entity);
}
我的 bolt 代码
private OutputCollector collector;
public PrinterBolt() {
this.index=0;
EntityManagerFactory emf = Persistence.createEntityManagerFactory("cassandra_pu");
EntityManager em= emf.createEntityManager();
database= new DatabaseController(em);
// TODO Auto-generated constructor stub
}
/* (non-Javadoc)
* @see org.apache.storm.task.IBolt#execute(org.apache.storm.tuple.Tuple)
*/
public void prepare(@SuppressWarnings("rawtypes") Map config, TopologyContext context,
OutputCollector collector) {
this.collector = collector;
}
public void execute(Tuple tuple) {
//tuple.getBinaryByField(arg0)
String message = tuple.getStringByField("message");
System.out.println("Receive ["+index+"]"+message);
database.saveEntitie(tuple.getBinaryByField("message"));
index++;
}
那么,我该如何解决这个问题,(我无法触及 com.impetus.kundera.persistence.EntityManagerImpl 类)
最佳答案
在 Bolt 的准备方法中实例化 com.impetus.kundera.persistence.EntityManagerImpl
类型的字段。
public void prepare(@SuppressWarnings("rawtypes") Map config, TopologyContext context,
OutputCollector collector) {
emf = Persistence.createEntityManagerFactory("cassandra_pu");
em = emf.createEntityManager();
database = new DatabaseController(em);
this.collector = collector;
}
关于java.io.NotSerializedException : com. impetus.kundera.persistence.EntityManagerImpl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37120093/
我使用 Kundera-Cassandra 3.2,想使用 Kundera 的事务管理。 我的处理方式是这样的: EntityManager manager = repo.getEntityManag
我正在使用 kundera-cassandra (V3.2) 并想限制一个选择查询。这正在使用以下代码: TypedQuery query = manager.createQuery(criteria
我正在尝试通过行键从数据库中删除特定记录。但是当我尝试执行这个查询时: Query query = em.createQuery( "DELETE FROM User u W
我有两个实体类,一个是从其他实体类继承的, @Entity @Table(name = "common", schema = "url_results@hbase_pu") @Inheritance(
我目前有一个运行正常的 HBase/Hadoop 集群,我对这些产品相当熟悉。我最近听说了 Kundera,它看起来是一个非常强大的工具,我想使用它。 但是,我似乎找不到任何关于使用 HBase 设置
我正在评估 kundera 和 Hibernate OGM 之间最好的框架选择。我的情况: 现有项目使用 hibernate ORM 来联系 Mysql 数据存储。现在我想在同一项目中读取/写入 ca
我正在努力在 Cassandra 中映射两个具有最小差异的表,但是 Kundera 无法正确映射我的模型(我已将其配置为根据 EntityManager 创建时的表验证映射)。给定以下复合键(根据 t
我正在使用 kundera 定义我的数据模型,该模型将存储在 hbase 中。有一个名为“Task”的类,它应该有一个通用的提交类型,如下所示: public class Task { ...
我有两个类,我想使用 OneToMany 与 EmbeddedId 的关系(我正在使用 kundera 框架)我的传感器实体类: public class SensorEntitie implemen
既然我有一个包含多个节点的 Cassandra 集群,我应该如何从 Java 代码中选择要连接的节点?显然,我可以连接到任何节点,但是最好的方法是什么? 例如,我一直在阅读昆德拉的文章,据我所知,您定
我想使用kundera作为apachestorm的dao层,将数据存储在cassandra数据库中。我的拓扑创建没有任何问题,我可以接收消息,但是当我尝试将数据存储在数据库中时,我收到消息: 2624
Java 是否对数据库的JPA 请求使用TCP 连接?例如,如果数据库服务器的 IP 地址 设置为 x.x.x.x:xxxx,那么哪种代理可以处理该连接? HTTP 或 TCP 代理? 最佳答案 JD
使用 JPA 注释 OneToOne/OneToMany 从 Cassandra 检索数据时,我们得到一个 null 对象(请参见下面的示例,其中“item”为 null)。 [ { "idP
我正在使用 Play! 2.0 并且在尝试使用 Cassandra 数据库时遇到问题。如何配置 application.conf 文件的属性以使用像 Kundera 这样的高级客户端。我是否必须在 c
我正在尝试在 JBoss EAP 6.1 上使用 Kundera 2.5.1(本质上与 JBoss AS 7.1 相同)。但是,当我部署应用程序时,我看到以下异常: [0m[31m12:44:24,1
我开发了一个 JAVA Rest Service (JDK 1.8),它使用 Kundera (V3.2) 进行 Cassandra 数据库连接。如果我使用 Tomcat 服务器在 eclipse 中
我想在 kundera-cassandra (V3.2) 实体中使用序列生成器。引用这个https://github.com/impetus-opensource/Kundera/issues/777
首先,我使用 HBase 0.94.5(也尝试过 0.92.2,结果相同)。 我遇到这样的情况: 变量类: @Entity @Table(name = "variable", schema = "ke
我是一名优秀的程序员,十分优秀!