我想要一个非常简单的Web应用程序部署到CloudBees上的JavaEE Web配置文件堆栈。我创建了一个将被使用的数据库。正在被容器修改的JDBC资源名称('_pm'被附加到它)
我创建了我的WAR文件,并将其部署到Glassfish3配置文件中,但出错。我也尝试过一个JBoss,而且也失败了,但是有一个不同的错误。我已经绑定的数据库使用SDK(而不是CloudBees的XML文件(应用程序,它听起来就像弃用这就是),但不管应用程序一直未能部署(即使重启后),与此错误:
[#|2013-02-25T11:03:57.584+0000|SEVERE|glassfish3.1.2|javax.enterprise.system.tools.admin.org.glassfish.deployment.admin|_ThreadID=12;_ThreadName=AutoDeployer;|Exception while preparing the app : Invalid resource : jdbc/resmandb__pm
com.sun.appserv.connectors.internal.api.ConnectorRuntimeException: Invalid resource : jdbc/resmandb__pm
at com.sun.enterprise.connectors.service.ConnectorResourceAdminServiceImpl$MyDataSource.validateResource(ConnectorResourceAdminServiceImpl.java:274)
at com.sun.enterprise.connectors.service.ConnectorResourceAdminServiceImpl$MyDataSource.setResourceInfo(ConnectorResourceAdminServiceImpl.java:255)
at com.sun.enterprise.connectors.service.ConnectorResourceAdminServiceImpl.lookupDataSourceInDAS(ConnectorResourceAdminServiceImpl.java:245)
at com.sun.enterprise.connectors.ConnectorRuntime.lookupDataSourceInDAS(ConnectorRuntime.java:538)
at com.sun.enterprise.connectors.ConnectorRuntime.lookupPMResource(ConnectorRuntime.java:469)
at org.glassfish.persistence.common.PersistenceHelper.lookupPMResource(PersistenceHelper.java:63)
at org.glassfish.persistence.jpa.ProviderContainerContractInfoBase.lookupDataSource(ProviderContainerContractInfoBase.java:71)
at org.glassfish.persistence.jpa.PersistenceUnitInfoImpl.<init>(PersistenceUnitInfoImpl.java:108)
at org.glassfish.persistence.jpa.PersistenceUnitLoader.loadPU(PersistenceUnitLoader.java:155)
at org.glassfish.persistence.jpa.PersistenceUnitLoader.<init>(PersistenceUnitLoader.java:120)
at org.glassfish.persistence.jpa.JPADeployer$1.visitPUD(JPADeployer.java:224)
at org.glassfish.persistence.jpa.JPADeployer$PersistenceUnitDescriptorIterator.iteratePUDs(JPADeployer.java:495)
at org.glassfish.persistence.jpa.JPADeployer.createEMFs(JPADeployer.java:233)
at org.glassfish.persistence.jpa.JPADeployer.prepare(JPADeployer.java:168)
at com.sun.enterprise.v3.server.ApplicationLifecycle.prepareModule(ApplicationLifecycle.java:871)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:410)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240)
at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:389)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:353)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:363)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1085)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:95)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1291)
at org.glassfish.deployment.autodeploy.AutoOperation.run(AutoOperation.java:145)
at org.glassfish.deployment.autodeploy.AutoDeployer.deploy(AutoDeployer.java:575)
at org.glassfish.deployment.autodeploy.AutoDeployer.deployAll(AutoDeployer.java:461)
at org.glassfish.deployment.autodeploy.AutoDeployer.run(AutoDeployer.java:389)
at org.glassfish.deployment.autodeploy.AutoDeployer.run(AutoDeployer.java:380)
at org.glassfish.deployment.autodeploy.AutoDeployService$1.run(AutoDeployService.java:220)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
|#]
我不明白的是,为什么它寻找资源jdbc/resmandb__pm
,这需要我结合(在这种情况下是resman
)任何名义,并增加了_pm
它。
什么我做错了吗?有对于这个应用程序来说并不多,它可以像Glassfish 3服务器一样运行。编辑:我一直在独立的glassfish环境中进行一些游戏。而且,当我没有glassfish-web.xml中的jdbc资源条目时,它看起来像JPA提供者(在这种情况下,EclipseLink)正在寻找两个jdbc资源:jdbc/_ pm和jdbc/ _nontx,其中是在web.xml中声明的资源的名称。
所以,我还没有尝试,但它看起来像我需要在bees-web.xml中定义这个,这是CloudBees自己的文档试图让人们不使用。不幸的是,GlassFish 3环境中的资源绑定效果不佳。这就是我目前发现的。
嗯。我只是试过这个。这并没有什么不同。仍然收到以下错误:( – EdH 2013-03-01 22:48:46
[#| 2013-03-01T22:44:35.336 + 0000 | SEVERE | glassfish3.1.2 | javax.enterprise.system.core.com.sun.enterprise.v3.server | _ThreadID = 12 ; _ThreadName = AutoDeployer; |准备应用程序时出现异常|#] [#| 2013-03-01T22:44:35.337 + 0000 | SEVERE | glassfish3.1.2 | javax.enterprise.system.core.com.sun.enterprise无效资源:jdbc/resmandb__pm \t at com.sun.enterprise.connectors.ConnectorRuntime.lookupDataSourceInDAS(ConnectorRuntime。).v3.server | _ThreadID = 12; _ThreadName = AutoDeployer; |无效资源: java:540) \t at – EdH 2013-03-01 22:50:00
而且,我的代码中没有任何地方使用__pm作为jdbc地址,而我使用了别名。 – EdH 2013-03-01 22:50:36