昨天写了一个小小的jsf + ejb3的应用,想来体验一下jsf。在向glassfish v2 布署的时候,没有成功,老是出exception, 内容如下:This pool is not registered with the runtime environment 。后来在网上查了好久,原来是因为在persistence.xml里指定了
<properties>
<property name="toplink.ddl-generation" value="create-tables"></property>
</properties>
<property name="toplink.ddl-generation" value="create-tables"></property>
</properties>
这会让toplink试图创建新的表,但是现在这个地方有个BUG导到新表无法被创建,把这条属性删除后就可以正常布署了,但需要手动去创建表。
我的也是啊
怎么解决呢 ?
这个BUG是因为glassfish v2 用的jpa实现 toplink在导出数据库表时有bug,你只要在persistence.xml里面加上我上面写的那段:
这样就不会出错了。另外,你可以更换JPA的实现,比如用 hibernate,这样也可以避免。