【问题标题】:Problem to deploy war in glassfish在 glassfish 中部署战争的问题
【发布时间】:2011-04-30 19:42:27
【问题描述】:

当我想在 glassfish 中部署我的 Web 应用程序(我使用 netbeans 制作)时,我遇到了这个错误

部署期间发生错误:准备应用程序时出现异常:资源无效:tun__pm。请参阅 server.log 了解更多详情

该应用程序是一个 RESTful Web 服务,当我测试它时,netbeans 部署它并且它工作正常。但是当我拿到 .war 文件并想要部署它时,我遇到了错误。

这是日志:

> [#|2011-04-30T19:50:05.229+0100|SEVERE|glassfish3.1|javax.enterprise.system.core.com.sun.enterprise.v3.server|_ThreadID=84;_ThreadName=Thread-3;|Invalid
> resource : tun__pm
> java.lang.RuntimeException: Invalid
> resource : tun__pm    at
> com.sun.enterprise.connectors.ConnectorRuntime.lookupDataSourceInDAS(ConnectorRuntime.java:539)
>   at
> com.sun.enterprise.connectors.ConnectorRuntime.lookupPMResource(ConnectorRuntime.java:468)
>   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:154)
>   at
> org.glassfish.persistence.jpa.PersistenceUnitLoader.<init>(PersistenceUnitLoader.java:119)
>   at
> org.glassfish.persistence.jpa.JPADeployer$1.visitPUD(JPADeployer.java:213)
>   at
> org.glassfish.persistence.jpa.JPADeployer$PersistenceUnitDescriptorIterator.iteratePUDs(JPADeployer.java:486)
>   at
> org.glassfish.persistence.jpa.JPADeployer.createEMFs(JPADeployer.java:220)
>   at
> org.glassfish.persistence.jpa.JPADeployer.prepare(JPADeployer.java:166)
>   at
> com.sun.enterprise.v3.server.ApplicationLifecycle.prepareModule(ApplicationLifecycle.java:870)
>   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:370)
>   at
> com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:355)
>   at
> com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:370)
>   at
> com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1067)
>   at
> com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:96)
>   at
> com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1247)
>   at
> com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1235)
>   at
> org.glassfish.admingui.common.util.LocalDeploymentFacility$LocalDFCommandRunner.run(LocalDeploymentFacility.java:143)
>   at
> org.glassfish.deployment.client.AbstractDeploymentFacility.deploy(AbstractDeploymentFacility.java:406)
>   at
> org.glassfish.admingui.common.util.DeployUtil.invokeDeploymentFacility(DeployUtil.java:100)
>   at
> org.glassfish.admingui.common.util.DeployUtil.deploy(DeployUtil.java:76)
>   at
> org.glassfish.admingui.common.handlers.DeploymentHandler.deploy(DeploymentHandler.java:191)
>   at
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method)   at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>   at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>   at
> java.lang.reflect.Method.invoke(Method.java:597)
>   at
> com.sun.jsftemplating.layout.descriptors.handler.Handler.invoke(Handler.java:442)
>   at
> com.sun.jsftemplating.layout.descriptors.LayoutElementBase.dispatchHandlers(LayoutElementBase.java:420)
>   at
> com.sun.jsftemplating.layout.descriptors.LayoutElementBase.dispatchHandlers(LayoutElementBase.java:394)
>   at
> com.sun.jsftemplating.layout.event.CommandActionListener.invokeCommandHandlers(CommandActionListener.java:150)
>   at
> com.sun.jsftemplating.layout.event.CommandActionListener.processAction(CommandActionListener.java:98)
>   at
> javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
>   at
> javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:769)
>   at
> javax.faces.component.UICommand.broadcast(UICommand.java:300)
>   at
> com.sun.webui.jsf.component.WebuiCommand.broadcast(WebuiCommand.java:166)
>   at
> javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
>   at
> javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
>   at
> com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
>   at
> com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
>   at
> com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
>   at
> javax.faces.webapp.FacesServlet.service(FacesServlet.java:409)
>   at
> org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1534)
>   at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343)
>   at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215)
>   at
> com.sun.webui.jsf.util.UploadFilter.doFilter(UploadFilter.java:223)
>   at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
>   at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215)
>   at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
>   at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>   at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
>   at
> org.apache.catalina.core.StandardPipeline.doChainInvoke(StandardPipeline.java:600)
>   at
> com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:96)
>   at
> com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
>   at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
>   at
> org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:326)
>   at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:227)
>   at
> com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:228)
>   at
> com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:822)
>   at
> com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:719)
>   at
> com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1013)
>   at
> com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
>   at
> com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
>   at
> com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
>   at
> com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
>   at
> com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
>   at
> com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
>   at
> com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
>   at
> com.sun.grizzly.ContextTask.run(ContextTask.java:71)
>   at
> com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
>   at
> com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
>   at
> java.lang.Thread.run(Thread.java:680)
> Caused by:
> com.sun.appserv.connectors.internal.api.ConnectorRuntimeException:
> Invalid resource : tun__pm    at
> com.sun.enterprise.connectors.service.ConnectorResourceAdminServiceImpl$MyDataSource.validateResource(ConnectorResourceAdminServiceImpl.java:272)
>   at
> com.sun.enterprise.connectors.service.ConnectorResourceAdminServiceImpl$MyDataSource.setResourceInfo(ConnectorResourceAdminServiceImpl.java:253)
>   at
> com.sun.enterprise.connectors.service.ConnectorResourceAdminServiceImpl.lookupDataSourceInDAS(ConnectorResourceAdminServiceImpl.java:243)
>   at
> com.sun.enterprise.connectors.ConnectorRuntime.lookupDataSourceInDAS(ConnectorRuntime.java:537)
>   ... 74 more |#]
> 
> [#|2011-04-30T19:50:05.238+0100|SEVERE|glassfish3.1|javax.enterprise.system.tools.admin.org.glassfish.deployment.admin|_ThreadID=84;_ThreadName=Thread-3;|Exception
> while preparing the app : Invalid
> resource : tun__pm
> com.sun.appserv.connectors.internal.api.ConnectorRuntimeException:
> Invalid resource : tun__pm    at
> com.sun.enterprise.connectors.service.ConnectorResourceAdminServiceImpl$MyDataSource.validateResource(ConnectorResourceAdminServiceImpl.java:272)
>   at
> com.sun.enterprise.connectors.service.ConnectorResourceAdminServiceImpl$MyDataSource.setResourceInfo(ConnectorResourceAdminServiceImpl.java:253)
>   at
> com.sun.enterprise.connectors.service.ConnectorResourceAdminServiceImpl.lookupDataSourceInDAS(ConnectorResourceAdminServiceImpl.java:243)
>   at
> com.sun.enterprise.connectors.ConnectorRuntime.lookupDataSourceInDAS(ConnectorRuntime.java:537)
>   at
> com.sun.enterprise.connectors.ConnectorRuntime.lookupPMResource(ConnectorRuntime.java:468)
>   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:154)
>   at
> org.glassfish.persistence.jpa.PersistenceUnitLoader.<init>(PersistenceUnitLoader.java:119)
>   at
> org.glassfish.persistence.jpa.JPADeployer$1.visitPUD(JPADeployer.java:213)
>   at
> org.glassfish.persistence.jpa.JPADeployer$PersistenceUnitDescriptorIterator.iteratePUDs(JPADeployer.java:486)
>   at
> org.glassfish.persistence.jpa.JPADeployer.createEMFs(JPADeployer.java:220)
>   at
> org.glassfish.persistence.jpa.JPADeployer.prepare(JPADeployer.java:166)
>   at
> com.sun.enterprise.v3.server.ApplicationLifecycle.prepareModule(ApplicationLifecycle.java:870)
>   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:370)
>   at
> com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:355)
>   at
> com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:370)
>   at
> com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1067)
>   at
> com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:96)
>   at
> com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1247)
>   at
> com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1235)
>   at
> org.glassfish.admingui.common.util.LocalDeploymentFacility$LocalDFCommandRunner.run(LocalDeploymentFacility.java:143)
>   at
> org.glassfish.deployment.client.AbstractDeploymentFacility.deploy(AbstractDeploymentFacility.java:406)
>   at
> org.glassfish.admingui.common.util.DeployUtil.invokeDeploymentFacility(DeployUtil.java:100)
>   at
> org.glassfish.admingui.common.util.DeployUtil.deploy(DeployUtil.java:76)
>   at
> org.glassfish.admingui.common.handlers.DeploymentHandler.deploy(DeploymentHandler.java:191)
>   at
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method)   at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>   at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>   at
> java.lang.reflect.Method.invoke(Method.java:597)
>   at
> com.sun.jsftemplating.layout.descriptors.handler.Handler.invoke(Handler.java:442)
>   at
> com.sun.jsftemplating.layout.descriptors.LayoutElementBase.dispatchHandlers(LayoutElementBase.java:420)
>   at
> com.sun.jsftemplating.layout.descriptors.LayoutElementBase.dispatchHandlers(LayoutElementBase.java:394)
>   at
> com.sun.jsftemplating.layout.event.CommandActionListener.invokeCommandHandlers(CommandActionListener.java:150)
>   at
> com.sun.jsftemplating.layout.event.CommandActionListener.processAction(CommandActionListener.java:98)
>   at
> javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
>   at
> javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:769)
>   at
> javax.faces.component.UICommand.broadcast(UICommand.java:300)
>   at
> com.sun.webui.jsf.component.WebuiCommand.broadcast(WebuiCommand.java:166)
>   at
> javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
>   at
> javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
>   at
> com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
>   at
> com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
>   at
> com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
>   at
> javax.faces.webapp.FacesServlet.service(FacesServlet.java:409)
>   at
> org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1534)
>   at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343)
>   at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215)
>   at
> com.sun.webui.jsf.util.UploadFilter.doFilter(UploadFilter.java:223)
>   at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
>   at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215)
>   at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
>   at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>   at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
>   at
> org.apache.catalina.core.StandardPipeline.doChainInvoke(StandardPipeline.java:600)
>   at
> com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:96)
>   at
> com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
>   at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
>   at
> org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:326)
>   at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:227)
>   at
> com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:228)
>   at
> com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:822)
>   at
> com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:719)
>   at
> com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1013)
>   at
> com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
>   at
> com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
>   at
> com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
>   at
> com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
>   at
> com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
>   at
> com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
>   at
> com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
>   at
> com.sun.grizzly.ContextTask.run(ContextTask.java:71)
>   at
> com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
>   at
> com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
>   at
> java.lang.Thread.run(Thread.java:680)

我不知道tun__pm 是什么,但 tun 是 netbeans 中数据库连接的名称。我应该在 glassfish 中为数据库连接做些什么吗? mysql正在工作..

【问题讨论】:

    标签: netbeans glassfish web-deployment


    【解决方案1】:

    我有同样的问题。 但无论如何,已经安装了 netbeans,如果您在安装时选择该选项,它也会安装 glassfish。 在服务选项卡中,如果您右键单击 Glassfish 服务器,属性,域文件夹是:C:\Users\\{username}\\.netbeans\7.1\config\GF3 而不是C:\Program Files\glassfish-3.1.1\glassfish\domains\domain1

    因此,如果您在 netbeans 中启动默认域实例并创建任何数据源,它们实际上会将连接池和数据源信息存储在C:\Users\\{username}\\.netbeans\7.1\config\GF3\domain1\config\domain.xml 中的 domain.xml 中。

    所以解决方案是: 要么复制

     <jdbc-connection-pool name="tunPool">...</jdbc-connection-pool>
     <jdbc-resource pool-name="tunPool" jndi-name="jdbc/tun"></jdbc-resource>
    

    从您的C:\Users\\{username}\\.netbeans\7.1\config\GF3\domain1\config\domain.xml

    C:\Program Files\glassfish-3.1.1\glassfish\domains\domain1\config
    

    将您的 glassfish 域实例添加到 netbeans 中的服务选项卡并使用它创建数据源(在 Windows 操作系统中,在将 domain1 添加到 netbeans 之前,右键单击 netbeans 并选择“以管理员身份运行”以打开它,否则 netbeans 无法检测域的存在1)

    【讨论】:

    • 我尝试使用德比样本池jdbc/sample...我在domain.xml 上没有看到它,但我看到jdbc/__default 本质上是一回事。所以我改变了,我开始工作了。
    【解决方案2】:

    看起来您需要在 glassfish 中创建一个 JNDI 名称为“tun_pm”的 JDBC 资源。这应该可以解决您的查找错误。

    【讨论】:

    • 我建议打开 glassfish 管理控制台并查看通过 JNDI 公开了哪些资源并查看是否列出了 tun_pm。它可能不是被称为“tun_pm”,而是被另一个名字暴露出来。
    • GlassFish 到底为什么会侵犯 glassfish-resource.xml 中声明的资源名称?
    【解决方案3】:

    我在使用 NetBeans 7.1.2 和 Glassfish 进行开发时遇到了类似的问题,我不知道为什么,但是我一直在使用的数据源和相关的数据库服务消失了不时显示下一个错误,同时部署:

    Grave: Exception while preparing the app : Invalid resource : whateverDBcon__pm com.sun.appserv.connectors.internal.api.ConnectorRuntimeException: Invalid resource : whateverDBcon__pm

    NetBeans 7.1.2 解决方案: 也许这不是专业的方式,但我刚刚创建了相同的数据源:Configuration Files/persistence.xml 使用您可以在“设计”视图中找到的向导。只需使用与旧名称相同的 JNDI 名称,它就会创建您需要的 JDBC 服务。

    cmutt78 有钥匙,谢谢!

    【讨论】:

      猜你喜欢
      • 2011-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      • 2023-03-03
      • 2015-11-18
      • 1970-01-01
      相关资源
      最近更新 更多