我正在开发一个部署目标为GlassFish v3.1的JavaEE6应用程序。为了隔离应用程序的实例(因为我们可能为测试,生产或多个QA实例部署了多个实例),我想将应用程序作用域资源用于应用程序中的所有资源:
不幸的是,由于JDBC连接细节不是静态的,我需要支持以下序列:
不幸的是,尝试使用JDBC连接的空url参数加载war会导致部署失败:
SEVERE: Exception while invoking class org.glassfish.persistence.jpa.JPADeployer prepare method
SEVERE: Exception while preparing the app
SEVERE: [PersistenceUnit: foo] Unable to build EntityManagerFactory
任何想法如何让应用程序部署得足够远,以至于应用范围的JDBC连接将存在并且可以配置?
答案 0 :(得分:1)
我最初会输入一个空白或虚拟数据库实例的URL,然后切换它。
您可以使用标有@Startup的类来设计一个切换URL并启动Liquibase脚本的类。如果为虚拟数据库配置了应用程序,那么可能还会包含警告消息。
@Startup示例:http://blog.eisele.net/2010/12/seven-ways-to-get-things-started-java.html