有一段时间没有弄 EJB 了,最近回过头来重新看,竟然遇到了一些以前没有遇到的问题,现记录下来以备不时只需。
问题是:在 JBoss 5.0 中部署 Entity Bean 时产生的,摘录了其中几处异常信息如下:
java.lang.reflect.InvocationTargetException org.jboss.serial.exception.SerializationException java.lang.InstantiationException
问题的出现与 persistence.xml 配置文件有关,这个问题是由 JBoss 的不同版本引起的。在 JBoss 4.3 或更低版本中,persistence.xml 可以这样写:
<?xml version="1.0" encoding="UTF-8"?> <persistence> <persistence-unit name="test"> <jta-data-source>java:/MySqlDS</jta-data-source> <properties> <property name="hibernate.hbm2ddl.auto" value="update" /> </properties> </persistence-unit> </persistence>
但是在 JBoss 5.0 中,还需要配置 persistence 的属性信息,样例如下:
<?xml version="1.0" encoding="UTF-8"?> <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_1_0.xsd" version="1.0"> <persistence-unit name="test"> <jta-data-source>java:/MySqlDS</jta-data-source> <properties> <property name="hibernate.hbm2ddl.auto" value="update" /> </properties> </persistence-unit> </persistence>
-----------------------------------------------------
Stay Hungry, Stay Foolish!
Afa
July 29th, 2010
-----------------------------------------------------