今天终于在glassfish上部署JPA成功,我近段时间会将这段时间的经验总结一下,详细的讲解一下基于glassfish和jboss(wildfly)的JPA部署,如果时间充裕,我会讲解整个JAVAEE环境的搭建,让后面的新人少些弯路
今天我就先说一下我在glassfish上部署JPA遇到的问题吧,我的数据持久层采用的是eclipselink架构,其实也是可以选择hibernate的,部署实体类成功的表示就是在数据库中建立实体类的表,首先我遇到的是一个连接字符串的问题,我就直接给出正确答案吧,在glassfish的连接池配置中,只有三个参数有用
<property name="Password" value="root"></property>
<property name="Url" value="jdbc:mysql://127.0.0.1:3306/databasename"></property>
<property name="User" value="root"></property>
就是这三个,用户名、密码、连接地址,如果没有数据库的名字,运行是会报错:no database selected
建立完jdbc连接池和jdbc资源之后,,一定要先部署,不然会报错: no password credential found
部署完毕之后,会在数据库中看到你的实体类表,表示成功。
还有一点非常重要,在ejb3.1中,所有jdni命名有了统一的规则,也就是在jboss下和在glassfish下访问是一样的,都是java:global/...,这里有一点需要注意,在war中引用ejb项目的话,部署war,jndi也要从war项目开始访问,比如你的war项目是a.war ejb项目为b.ejb,ejb模块有个session bean c 那么你访问ejb模块的c应该是这样 java:global/a/c
今天我就先说一下我在glassfish上部署JPA遇到的问题吧,我的数据持久层采用的是eclipselink架构,其实也是可以选择hibernate的,部署实体类成功的表示就是在数据库中建立实体类的表,首先我遇到的是一个连接字符串的问题,我就直接给出正确答案吧,在glassfish的连接池配置中,只有三个参数有用
<property name="Password" value="root"></property>
<property name="Url" value="jdbc:mysql://127.0.0.1:3306/databasename"></property>
<property name="User" value="root"></property>
就是这三个,用户名、密码、连接地址,如果没有数据库的名字,运行是会报错:no database selected
建立完jdbc连接池和jdbc资源之后,,一定要先部署,不然会报错: no password credential found
部署完毕之后,会在数据库中看到你的实体类表,表示成功。
还有一点非常重要,在ejb3.1中,所有jdni命名有了统一的规则,也就是在jboss下和在glassfish下访问是一样的,都是java:global/...,这里有一点需要注意,在war中引用ejb项目的话,部署war,jndi也要从war项目开始访问,比如你的war项目是a.war ejb项目为b.ejb,ejb模块有个session bean c 那么你访问ejb模块的c应该是这样 java:global/a/c