Java Spring MVC JNDI连接池错误

Java Spring MVC JNDI连接池错误,java,spring,jndi,Java,Spring,Jndi,我使用的是Spring MVC JNDI,出现了以下异常: 异常javax.naming.NameNotFoundException:名称jdbc在此上下文中未绑定 我不知道怎么解决这个问题。这是我的密码: applicationContext.xml <context> <ResourceLink name="jdbc/practice" global="jdbc/practice" auth="C

我使用的是Spring MVC JNDI,出现了以下异常:

异常javax.naming.NameNotFoundException:名称jdbc在此上下文中未绑定

我不知道怎么解决这个问题。这是我的密码:

applicationContext.xml

   <context>
    <ResourceLink name="jdbc/practice"
                global="jdbc/practice"
                auth="Container"
                type="javax.sql.DataSource" />
    </context>
web.xml


您并不是说如何在容器中配置JNDI资源,例如Tomcat中的server.xml或META-INF/context.xml或。。。。但是中的资源名称应该是jdbc/practice,jndinamebean属性的值也应该是jdbc/practice

这里有几点建议:

公共无效雇员{

    this.sessionfactory.getCurrentSession().save(e);

     }
      }

   server.xml
  <server>
  <GlobalNamingResources>
  <Resource name="jdbc/practice"
  global="jdbc/practice"
  auth="Container"
  type="javax.sql.DataSource"
  driverClassName="com.mysql.jdbc.Driver"
  url="jdbc:mysql://localhost:3306/practice"
  username="root"
  password="root123"
  maxActive="100"
  maxIdle="20"
  minIdle="5"
  maxWait="10000"/>
  </GlobalNamingResources>
    </server>
context.xml

   <context>
    <ResourceLink name="jdbc/practice"
                global="jdbc/practice"
                auth="Container"
                type="javax.sql.DataSource" />
    </context>
你看到这个了吗?
 applicationContext.xml
 <bean id="sessionFactory"                                                                                                     class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="dbDataSource" ref="dbDataSource" />  
  </bean>
 <bean id="dbDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName" value="java:comp/env/jdbc/practice"/>
     <property name="lookupOnStartup" value="true"></property>
  </bean>

 web.xml
  <resource-ref>
<description>MySQL Datasource example</description>
<res-ref-name>java:comp/env/jdbc/practice</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
 </resource-ref>
@Autowired
private SessionFactory sessionfactory;

    @Autowired
     @Qualifier("dbDataSource")
    private DataSource dataSource;
    this.sessionfactory.getCurrentSession().save(e);

     }
      }

   server.xml
  <server>
  <GlobalNamingResources>
  <Resource name="jdbc/practice"
  global="jdbc/practice"
  auth="Container"
  type="javax.sql.DataSource"
  driverClassName="com.mysql.jdbc.Driver"
  url="jdbc:mysql://localhost:3306/practice"
  username="root"
  password="root123"
  maxActive="100"
  maxIdle="20"
  minIdle="5"
  maxWait="10000"/>
  </GlobalNamingResources>
    </server>
   <context>
    <ResourceLink name="jdbc/practice"
                global="jdbc/practice"
                auth="Container"
                type="javax.sql.DataSource" />
    </context>