試圖連接到MySQL數據庫我有此錯誤:通過GlassFish的連接池連接到MySQL
No object bound to name java:comp/env/jdbc/mySql
這是我的配置類:
@Configuration
@EnableTransactionManagement
@ComponentScan({ "org.onmyown.config" })
@PropertySource(value = { "classpath:application.properties" })
public class HibernateConfiguration {
@Autowired
private Environment environment;
@Bean
public LocalSessionFactoryBean sessionFactory() {
LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
sessionFactory.setDataSource(dataSource());
sessionFactory.setPackagesToScan(new String[] { "org.onmyown" });
sessionFactory.setHibernateProperties(hibernateProperties());
return sessionFactory;
}
@Bean
public DataSource dataSource() {
DataSource dataSource = null;
try {
Context initialContext = new InitialContext();
Context environmentContext = (Context)initialContext.lookup("java:comp/env");
dataSource = (DataSource) environmentContext.lookup("jdbc/mySql");
} catch (NamingException e) {
e.printStackTrace();
}
return dataSource;
}
private Properties hibernateProperties() {
Properties properties = new Properties();
properties.put("hibernate.dialect", environment.getRequiredProperty("hibernate.dialect"));
properties.put("hibernate.show_sql", environment.getRequiredProperty("hibernate.show_sql"));
properties.put("hibernate.format_sql", environment.getRequiredProperty("hibernate.format_sql"));
properties.put("hibernate.hbm2ddl.auto", environment.getRequiredProperty("hibernate.hbm2ddl.auto"));
return properties;
}
@Bean
@Autowired
public HibernateTransactionManager transactionManager(SessionFactory s) {
HibernateTransactionManager txManager = new HibernateTransactionManager();
txManager.setSessionFactory(s);
return txManager;
}
}
我可以平安GlassFish很好。我把所有我需要的財產(我認爲)。我的朋友使用Derby數據庫進行了這種配置,它的工作原理。有什麼區別嗎?
@edit
我「固定」了一些東西。我加的web.xml,一切就在這裏:現在
https://github.com/afterlook/SpringMVC
的問題是,應用程序並不真正關心,我把MySQL作爲數據源。它搜索這是GlassFish中默認設置之一的DerbyPool。任何想法爲什麼?
閱讀有關[上下文的環境(https://docs.oracle.com/javase/jndi/tutorial/beyond/env/context.html),你必須先設置它才能得到它...這是一個[示例](https://docs.oracle.com/javase/jndi/tutorial/beyond/env/src/GetEnv.java) –
我不明白它,你是否想說我在hibernateProperties()中返回的屬性是空的?如果是的話,情況並非如此。我已經閱讀了你鏈接的這些例子,我不知道這應該如何幫助我。讓我也指出,當我沒有使用代碼的連接池時,我的應用程序工作正常。我改變的唯一的東西是dataSource()。 – Afterlook