【发布时间】:2018-08-08 09:39:27
【问题描述】:
带有嵌入式 Tomcat 的 Jndi Mongodb Spring boot,
无法加载 JDBC 驱动程序类“mongodb.jdbc.MongoDriver”。相反,我已经在依赖项中添加了 mongodb-java-driver ?
@Bean
public TomcatEmbeddedServletContainerFactory tomcatFactory() {
return new TomcatEmbeddedServletContainerFactory() {
protected TomcatEmbeddedServletContainer getTomcatEmbeddedServletContainer(Tomcat tomcat) {
tomcat.enableNaming();
return super.getTomcatEmbeddedServletContainer(tomcat);
}
@Override
protected void postProcessContext(Context context) {
ContextResource mongoResource = new ContextResource();
mongoResource.setName("jdbc/Mongodb");
mongoResource.setType(DataSource.class.getName());
mongoResource.setProperty("driverClassName", "mongodb.jdbc.MongoDriver");
mongoResource.setProperty("url", "jdbc:mongo://localhost:27017/skywriter");
mongoResource.setProperty("username", "skywriter");
mongoResource.setProperty("password", "skywriter");
context.getNamingResources().addResource(mongoResource);
}
};
}
@Bean(destroyMethod = "")
@Primary
public DataSource mongoJNDIDataSource() throws IllegalArgumentException, NamingException {
JndiObjectFactoryBean mongodb = new JndiObjectFactoryBean();
mongodb.setJndiName("java:comp/env/jdbc/Mongodb");
mongodb.setProxyInterface(DataSource.class);
mongodb.setLookupOnStartup(false);
mongodb.afterPropertiesSet();
return (DataSource) mongodb.getObject();
}
【问题讨论】:
-
请不要发布代码图片,因为它们可能难以阅读且不可搜索。将代码的相关部分作为文本添加到问题中。
标签: java mongodb spring-boot