小编ale*_*ale的帖子

通过注释设置与Spring的JNDI连接

我尝试使用JNDI属性通过注释方式将Spring设置为数据库连接.我设置了我的server.xml

<Resource name="jdbc/cms"
          global="jdbc/cms"
          auth="Container"
          type="javax.sql.DataSource"
          driverClassName="com.mysql.jdbc.Driver"
          url="jdbc:mysql://localhost:3306/cms"
          username="root"
          password="admin"
          maxActive="100"
          maxIdle="20"
          minIdle="5"
          maxWait="10000"/>
Run Code Online (Sandbox Code Playgroud)

的context.xml

<ResourceLink name="jdbc/cms"
                    global="jdbc/cms"
                    auth="Container"
                    type="javax.sql.DataSource" />
Run Code Online (Sandbox Code Playgroud)

DispatcherServlet的

public class Dispatcher implements WebApplicationInitializer {

    @Override
    public void onStartup(ServletContext servletContext) throws ServletException{
        AnnotationConfigWebApplicationContext appContext = new AnnotationConfigWebApplicationContext();
        appContext.register(ApplicationContext.class);
        ServletRegistration.Dynamic dispatcher = servletContext.addServlet("SpringDispatcher", new DispatcherServlet(appContext));
        dispatcher.setLoadOnStartup(1);
        dispatcher.addMapping("/");
    }
}
Run Code Online (Sandbox Code Playgroud)

appicationContext

@Configuration
@ComponentScan("com.myproject")
@EnableTransactionManagement
public class ApplicationContext {

    @Bean(name="dataSource")
    @Resource(name="jdbc/cms")
    public DataSource getDataSource(){
        JndiDataSourceLookup dsLookup = new JndiDataSourceLookup();
        dsLookup.setResourceRef(true);
        DataSource dataSource = dsLookup.getDataSource("java:comp/env/jdbc/cms");
        return dataSource;
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试运行我的项目时,我可以看到这个东西:

Caused …
Run Code Online (Sandbox Code Playgroud)

java spring tomcat jndi

5
推荐指数
1
解决办法
7812
查看次数

标签 统计

java ×1

jndi ×1

spring ×1

tomcat ×1