2011-04-30 108 views
2

戰爭時,我想部署我的web應用程序(我使其與NetBeans)在GlassFish中,我有這個錯誤部署期間發生問題部署在GlassFish中

錯誤:異常而準備的應用程序:無效的資源: 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但囤地是在NetBeans。應該我做GlassFish中一些數據庫連接的數據庫連接的名稱? mysql正在工作..

回答

2

看起來您需要使用JNDI名稱「tun_pm」在glassfish中創建JDBC資源。這應該可以解決您的查找錯誤。

+0

Thanx的答案。我試過,但錯誤持續...... – user723023 2011-05-01 18:29:58

+0

我建議打開glassfish管理控制檯並查看通過JNDI暴露了哪些資源,並查看tun_pm是否已列出。它有可能不是被稱爲「tun_pm」,而是可能以其他名稱公開。 – cmutt78 2011-05-01 22:19:28

+2

爲什麼GlassFish會褻瀆glassfish-resource.xml中聲明的資源名稱? – 2011-06-25 20:33:50

3

我有同樣的問題。 但是,無論如何,如果您在安裝時選擇了該選項,則安裝了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 

OR

Glassfish的域實例添加到服務選項卡中NetBeans和創建使用它的數據源(在Windows操作系統中,在將domain1添加到netbeans之前,右鍵單擊o ñNetBeans和選擇「以管理員身份運行」打開它,否則的NetBeans無法檢測域1的存在)

+0

我試圖使用derby樣本池'jdbc/sample' ...並且我沒有在'domain.xml'上看到它,但是我看到'jdbc/__ default'基本上是一樣的東西。所以我改變了,我的工作。 – Jaider 2013-03-18 06:39:06

0

我已經有類似的問題,而使用的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有鑰匙,謝謝!