EJB3(中文版) 第八集 Standalone Persistence

 不启动Jboss或其它应用服务器的情况下运行EJB3程序.
Enterprise_JavaBeans_3一书中的ex05_2例子.

1.检查数据库的启动
2.注意事务类型
  transaction-type="RESOURCE_LOCAL"
3.用到jboss-EJB-3.0_Embeddable_ALPHA_9包中的Jar包
4.persistence.xml文件内容
<?xml version="1.0" encoding="UTF-8"?>
<persistence>
   <persistence-unit name="titan" transaction-type="RESOURCE_LOCAL">
       <properties>
            <property name="hibernate.connection.driver_class" value="org.gjt.mm.mysql.Driver"/>
            <property name="hibernate.connection.username" value="root"/>
            <property name="hibernate.connection.password" value="1234"/>
            <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/titan"/>
            <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
            <property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider"/>
       </properties>
   </persistence-unit>
</persistence>
5.强调一下Eclipse工作区的路径不能有空格.
6.这里面我们在前面已经介绍过了.
7.实际在数据库中并没有真正的创建表,也没有将数据存入表中。
易出现的异常:

Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named titan
 at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
 at com.lyh.ejb3.clients.StandaloneClient.main(StandaloneClient.java:28)
解决方法:加入jboss-EJB-3.0_Embeddable_ALPHA_9包中的
hibernate-all.jar,jboss-ejb3-all.jar,thirdparty-all.jar三个Jar文件即可.

og4j:WARN No appenders could be found for logger (org.hibernate.ejb.Version).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" javax.persistence.PersistenceException: org.hibernate.HibernateException: JDBC Driver class not found: com.mysql.jdbc.Driver
 at org.hibernate.ejb.Ejb3Configuration.createEntityManagerFactory(Ejb3Configuration.java:217)
 at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:114)
 at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:51)
 at com.lyh.ejb3.clients.StandaloneClient.main(StandaloneClient.java:28)
Caused by: org.hibernate.HibernateException: JDBC Driver class not found: com.mysql.jdbc.Driver
 at org.hibernate.connection.DriverManagerConnectionProvider.configure(DriverManagerConnectionProvider.java:66)
 at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:124)
 at org.hibernate.ejb.InjectionSettingsFactory.createConnectionProvider(InjectionSettingsFactory.java:29)
 at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:62)
 at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:1933)
 at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1216)
 at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:631)
 at org.hibernate.ejb.Ejb3Configuration.createEntityManagerFactory(Ejb3Configuration.java:760)
 at org.hibernate.ejb.Ejb3Configuration.createFactory(Ejb3Configuration.java:151)
 at org.hibernate.ejb.Ejb3Configuration.createEntityManagerFactory(Ejb3Configuration.java:205)
 ... 3 more
Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
 at java.net.URLClassLoader$1.run(Unknown Source)
 at java.security.AccessController.doPrivileged(Native Method)
 at java.net.URLClassLoader.findClass(Unknown Source)
 at java.lang.ClassLoader.loadClass(Unknown Source)
 at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
 at java.lang.ClassLoader.loadClass(Unknown Source)
 at java.lang.ClassLoader.loadClassInternal(Unknown Source)
 at java.lang.Class.forName0(Native Method)
 at java.lang.Class.forName(Unknown Source)
 at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:100)
 at org.hibernate.connection.DriverManagerConnectionProvider.configure(DriverManagerConnectionProvider.java:61)
 ... 12 more
解决方法:将Mysql数据库的驱动加入到工作区中.

log4j:WARN No appenders could be found for logger (org.hibernate.ejb.Version).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" javax.persistence.PersistenceException: org.hibernate.HibernateException: Hibernate Dialect must be explicitly set
 at org.hibernate.ejb.Ejb3Configuration.createEntityManagerFactory(Ejb3Configuration.java:217)
 at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:114)
 at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:51)
 at com.lyh.ejb3.clients.StandaloneClient.main(StandaloneClient.java:28)
Caused by: org.hibernate.HibernateException: Hibernate Dialect must be explicitly set
 at org.hibernate.dialect.DialectFactory.determineDialect(DialectFactory.java:57)
 at org.hibernate.dialect.DialectFactory.buildDialect(DialectFactory.java:39)
 at org.hibernate.cfg.SettingsFactory.determineDialect(SettingsFactory.java:409)
 at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:119)
 at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:1933)
 at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1216)
 at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:631)
 at org.hibernate.ejb.Ejb3Configuration.createEntityManagerFactory(Ejb3Configuration.java:760)
 at org.hibernate.ejb.Ejb3Configuration.createFactory(Ejb3Configuration.java:151)
 at org.hibernate.ejb.Ejb3Configuration.createEntityManagerFactory(Ejb3Configuration.java:205)
 ... 3 more
上面是没有启动数据库的情况下出现的异常.

我的联系方式:
QQ:495585885
Email:liuyuhui_007@yahoo.com.cn
我的博客:http://hi.baidu.com/vsandjava

主页公布的邮箱下载或

http://hi.baidu.com/vsandjava/blog/item/de2aa086a0a6393e66096ef7.html

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值