Mysql 让JNDI与RDS协同工作

Mysql 让JNDI与RDS协同工作,mysql,jndi,amazon-rds,Mysql,Jndi,Amazon Rds,我正试图将Tomcat7配置为使用RDS/MySQL实例,但运气不好。我怀疑问题出在context.xml中。如果存在context.xml,则会发生一些不好的情况,例如无法通过Eclipse进行远程调试,因此无法调试我的DB代码。My context.xml(删除用户名/密码等详细信息以保护无辜者): 知道发生了什么吗?人们没有将JNDI与RDS一起使用吗?最好的方法是什么?这可能是因为以前的应用程序没有从tomcat容器中正确地取消部署 停止tomcat,然后转到tomcat conf目录/

我正试图将Tomcat7配置为使用RDS/MySQL实例,但运气不好。我怀疑问题出在context.xml中。如果存在context.xml,则会发生一些不好的情况,例如无法通过Eclipse进行远程调试,因此无法调试我的DB代码。My context.xml(删除用户名/密码等详细信息以保护无辜者):


知道发生了什么吗?人们没有将JNDI与RDS一起使用吗?最好的方法是什么?

这可能是因为以前的应用程序没有从tomcat容器中正确地取消部署

停止tomcat,然后转到tomcat conf目录
//conf/Catalina/localhost
,并清理该目录中的xml文件。然后重新启动tomcat


注:1。在删除之前对这些xml文件进行备份,这样如果不起作用,您就可以恢复它。

我在本地尝试在tomcat8上部署带有jndi引用的webapp时遇到了类似的问题。看起来新版本的tomcat需要链接server context.xml配置中的资源。 在我的例子中,我通过向server context.xml添加以下行解决了这个问题:

<ResourceLink name="JDBC_DATASOURCE_NAME_DEF_IN_SERVER:XML" global="JDBC_DATASOURCE_NAME_DEF_IN_SERVER:XML" type="javax.sql.DataSource"/>

JDBC_DATASOURCE_NAME_DEF_IN_SERVER:XML意味着使用用于在tomcat实例的SERVER.XML配置文件中定义资源的名称

名称attr—用于向部署的应用程序上下文公开资源的名称

全局属性。-在tomcat的server.xml配置文件中定义的jndi资源的名称

希望这有帮助

WARNING: Failed to retrieve JNDI naming context for container [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/puppy]] so no cleanup was performed for that container
javax.naming.NameNotFoundException: Name comp is not bound in this Context
    at org.apache.naming.NamingContext.lookup(NamingContext.java:803)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:159)
    at org.apache.catalina.deploy.NamingResources.cleanUp(NamingResources.java:975)
    at org.apache.catalina.deploy.NamingResources.stopInternal(NamingResources.java:957)
    at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:225)
    at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5504)
    at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:225)
    at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3847)
    at org.apache.catalina.manager.ManagerServlet.reload(ManagerServlet.java:949)
    at org.apache.catalina.manager.HTMLManagerServlet.reload(HTMLManagerServlet.java:676)
    at org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:214)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.filters.CsrfPreventionFilter.doFilter(CsrfPreventionFilter.java:187)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:572)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:403)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:301)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:162)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:636)
Jul 6, 2011 4:44:52 AM org.apache.catalina.core.NamingContextListener lifecycleEvent
SEVERE: Creation of the naming context failed: javax.naming.NamingException: Context is read only
<ResourceLink name="JDBC_DATASOURCE_NAME_DEF_IN_SERVER:XML" global="JDBC_DATASOURCE_NAME_DEF_IN_SERVER:XML" type="javax.sql.DataSource"/>