Java Spring MVC JNDI连接池错误
我使用的是Spring MVC JNDI,出现了以下异常: 异常javax.naming.NameNotFoundException:名称jdbc在此上下文中未绑定 我不知道怎么解决这个问题。这是我的密码: applicationContext.xmlJava 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
<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>