最近老出现部署失败的情况。我是在家里和办公室都用同样的环境,用U盘把项目的目录全部拷贝,在家里和办公室的电脑间拷贝和继续开发,虽然我在建立数据库是用同一个 sql 文件,数据库的访问应该是没问题的。但是,每一次拷贝后来部署,总出问题。
下面是错误的信息:
从这些信息看到是数据库 连接池 和 jndi 出问题了。我尝试把连接池取消,删除 persistence.xml 然后重新生成 persistence.xml,但问题还是存在。
最后,我的处理是,把 连接池的相关链接取消,删除persistence.xml,把 数据库 连接删除!重新建立 数据库连接,重新生成 persistence.xml, 在生成 persistence.xml 的过程中 建立新的 jndi。然后部署,顺利完成。
有什么办法把 数据库连接、连接池和 jndi 等备份出来装到其他机器?
======================================================
经过网上乱找一通,发现以下帖子:
(1) Glassfish V3 Resources with the Administration CLI tool (asadmin)
http://weblogs.java.net/blog/felipegaucho/archive/2010/03/04/glassfish-v3-resources-administration-cli-tool-asadmin
(2) TOTD #121: JDBC resource for MySQL and Oracle sample database in GlassFish v3
http://blogs.sun.com/arungupta/entry/ttd_121_jdbc_resource_for
这个网站有多个很好的jpa2, ejb3 和 web service 例子,很值得看看。
当然,最重要的是 glassfish v3 的文档:820-7701
wiki.glassfish.java.net/attach/ReferenceManual/820-7701.pdf
根据以上的资料,可以有个眉目了:
以下操作是在启动 glassfish 后,在命令行先运行 asadmin, 然后输入相应的操作:
(1) 列出现有的配置:链接池和jndi
asadmin> list-jdbc-connection-pools
asadmin> list-jdbc-resources
(2) 删除指定的连接池和jndi
asadmin> delete-jdbc-resource jndi/bulauser1
这个删除jndi名字为 "jndi/bulauser1" 的资源
asadmin> delete-jdbc-connection-pool mysql_buladbs_dukePool
这个删除 连接池 mysql_buladbs_dukePool
输入 exit 退出 asadmin
(3) 建立新的连接池和jndi名字
asadmin create-jdbc-connection-pool --datasourceclassname com.mysql
.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource --restype javax.sql.Connectio
nPoolDataSource --property User=MyDBUser:Password=MyDBPassWord:serverName=localhost:portNumb
er=3306:databaseName=User1db mysql_User1_dukePool
这个操作实在太长,呵呵,所以把它放到一个 bat 文件。注意的是 --property项目:
User=MyDBUser 我的数据库的用户名
Password=MyDBPassWord 我的数据库的密码
serverName=localhost 我的mysql服务器,localhost 或 真实的ip地址
portNumber 我的mysql的链接端口,一般就是 3306
databaseName 我的数据库的名字
mysql_User1_dukePool 我的链接池
网上的例子用 url 但总出错,按官方文档每项具体列出,就可正常运行了。
asadmin create-jdbc-resource --connectionpoolid mysql_User1_dukePool jndi/Myuser1
这个操作也是放在一个 bat 文件。它是在链接池 mysql_User1_dukePool 上建立一个 jndi名字 jndi/Myuser1
以上操作基本就可以手工查看、删除和建立链接池和jndi name.
不过,后来我发现,每次部署后,以前就的 jndi 名字又跑出来,经过观察,发现 链接池和 jndi name 还在project 的 sun-resources.xml 有记录。所以,还需要手工修改这个文件:
jdbc-connection-pool 的项 name 必须是我的链接池名字
jdbc-resource 可能有几行(呵呵!)只保留1行,而且其中的项 pool-name 改为我的连接池 名字, jndi-name 改为我的jndi名字。
然后重新建立 persistence.xml 这样部署就不会出错也不会再跑出旧的连接池和jndi名字了。
:-
- 大小: 49.6 KB
- 大小: 64.6 KB
- 大小: 37.1 KB
分享到:
相关推荐
NetBeans7.0.1如何成功添加GlassFish3.x服务器
web的目标jar 博文链接:https://zerxd.iteye.com/blog/250674
Web services development using NetBeans IDE and GlassFish
在Glassfish上部署web应用在Glassfish上部署web应用
环境是:netbeans8.1,NetBeans自带glassfish4.1,JDK7 输出老是1,不能递增+1,也即是有状态会话bean不能保存状态,请各位大哥帮忙看看,问题在哪?
glassFish NetBeans j2ee java 开发指南,详细指导如何搭建一个demo
本教程详细的介绍了sun公司的推出的服务器glassfish安装部署的使用步骤,阐述了glassfish和tomcat服务器的异同,以及glassfish的优点!正在开发JavaEE的朋友如果你还没使用过glassfish,那么请你去www.sun.com下载...
java ee 6 with glassfish 3 java ee 6 with glassfish 3
Glassfish部署web项目
马拉松使用Maven和GlassFish在NetBeans中解释Spring / Struts / Hibernate的存储库。 ##关于。 你好! 该存储库包含一个使用Java完成的基本编程马拉松注册项目,分别使用JavaEE Struts / Spring / Hibernate框架的...
GlassFish4的下载和安装的详细步骤,下载地址,配置等。附带有GlassFish3的安装简述
glassfish部署EJB公网访问设置
GlassFish3.1部署项目说明 包括 Linux 和Windows两个版本系统。全程图文并茂讲述,自己亲手制作。欢迎大家下载。
使用Netbeans 7.3 开发基于JSF, EJB, JPA的应用程序. JSF实用primefaces 3.4, 数据库使用oraclexe 11g. 注: 该文档是在原作者的netbeans6.8, javadb的基础上修改的,并在netbeans 7.3中测试成功.
glassfish服务器是Netbean的网络服务器之一
Beginning Java EE 6 Platform with GlassFish 3, Second Edition is this first tutorial book on the final (RTM) version of the Java EE 6 Platform. Step by step and easy to follow, this book describes ...
Java EE 6 with GlassFish 3 Application Server.rar
Maven 安装插件 glassfish 热部署 加快glassfish 开发速度 图解 自己总结的,有什么不足的请指出
高端研讨课程之- GlassFish (TM) 企业服务器管理和部署高端研讨课程之- GlassFish (TM) 企业服务器管理和部署