良い日私はmysqlデータベースでhibernateを使用していますが、プロジェクトを実行しようとしているときにエラーが発生していますSevere:アプリケーションの読み込み中に例外が発生しましたSevere:コンテキスト/ eLeon SevereでUndeploymentが失敗しました:アプリケーション:java.lang.IllegalStateException:ContainerBase.addChild:start:org.apache.catalina.LifecycleException:org.apache.catalina.LifecycleException:java.lang.ClassNotFoundException:com.websirmbano.springmvc.dao.OipatientDaoが私のクラスですそして私のコンフィギュレーションファイルHibernateとmavenを使用したSpring MVC
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.websirmbano.springmvc.dao;
import com.websirmbano.springmvc.model.Tblpatients;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.SQLQuery;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate4.HibernateTemplate;
import org.springframework.stereotype.Repository;
/**
*
* @author SYSTEMS DEVELOPER ML
*/
@Repository
public class OIPatientDaoImpl implements OipatientDao {
@Autowired
private HibernateTemplate hibernateTemplate;
@Override
public Tblpatients getOIPatientById(String patientId) {
return hibernateTemplate.get(Tblpatients.class, patientId);
}
@SuppressWarnings("unchecked")
@Override
public List<Tblpatients> findAllOIPatients() {
String hql = "FROM Tblpatients as p ORDER BY p.patientId";
return (List<Tblpatients>) hibernateTemplate.find(hql);
}
@Override
public void addOIPatient(Tblpatients patient) {
hibernateTemplate.save(patient);
}
@Override
public void updateOIPatient(Tblpatients patient) {
Tblpatients p = getOIPatientById(patient.getPatientId());
p.setFirstName(patient.getFirstName());
p.setSurName(patient.getSurName());
p.setSex(patient.getSex());
p.setDateOfBirth(patient.getDateOfBirth());
p.setDateOfDeath(patient.getDateOfDeath());
hibernateTemplate.update(p);
}
@Override
public void deleteOIPatientById(String patientId) {
hibernateTemplate.delete(getOIPatientById(patientId));
}
@Override
public List findOIPatientByParameter(String patientId, String firstName, String surName,String nationalId){
String queryPatient="SELECT * from Tblpatients where 1 = Case when '" + patientId + "'='' Then 1 when patientId = '" + patientId + "' AND 1 = Case when '" + nationalId + "'='' Then 1 when nationalId = '" + nationalId + "' AND 1= Case when '" + firstName + "'='' Then 1 when firstName = '" + firstName + "' AND 1 = Case when '" + surName + "'='' Then 1 when surName = '" + surName + "'";
SQLQuery sqlQuery =hibernateTemplate.getSessionFactory().openSession().createSQLQuery(queryPatient);
List result = sqlQuery.list();
return result;
}
@SuppressWarnings("unchecked")
@Override
public boolean OIPatientExists(String patientId) {
String hql = "FROM Tblpatients as p WHERE p.patientId = ?";
List<Tblpatients> patient = (List<Tblpatients>) hibernateTemplate.find(hql, patientId);
return patient.size() > 0 ? true : false;
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.websirmbano.springmvc.dao;
import com.websirmbano.springmvc.model.Tblpatients;
import java.util.List;
/**
*
* @author SYSTEMS DEVELOPER ML
*/
public interface OipatientDao {
Tblpatients getOIPatientById(String patientId);
void addOIPatient(Tblpatients patient);
void updateOIPatient(Tblpatients patient);
void deleteOIPatientById(String patientId);
List<Tblpatients> findAllOIPatients();
List findOIPatientByParameter(String patientId, String firstName, String surName,String nationalId);
boolean OIPatientExists(String patientId);
}
and my configuration files are as follows
package com.websirmbano.springmvc.configuration;
import java.util.Locale;
import org.springframework.context.MessageSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.support.ResourceBundleMessageSource;
import org.springframework.web.servlet.LocaleResolver;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.i18n.CookieLocaleResolver;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.springframework.web.servlet.view.JstlView;
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.websirmbano.springmvc")
public class AppConfig {
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setViewClass(JstlView.class);
viewResolver.setPrefix("/WEB-INF/views/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
@Bean
public MessageSource messageSource() {
ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
messageSource.setBasename("messages");
return messageSource;
}
@Bean
public LocaleResolver localeResolver(){
CookieLocaleResolver resolver = new CookieLocaleResolver();
resolver.setDefaultLocale(new Locale("en"));
resolver.setCookieName("myLocaleCookie");
resolver.setCookieMaxAge(4800);
return resolver;
}
}
package com.websirmbano.springmvc.configuration;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration;
import org.springframework.web.WebApplicationInitializer;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.servlet.DispatcherServlet;
public class AppInitializer implements WebApplicationInitializer {
public void onStartup(ServletContext container) throws ServletException {
AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
ctx.register(AppConfig.class);
ctx.setServletContext(container);
ServletRegistration.Dynamic servlet = container.addServlet(
"dispatcher", new DispatcherServlet(ctx));
servlet.setLoadOnStartup(1);
servlet.addMapping("/");
}
}
package com.websirmbano.springmvc.configuration;
import java.util.Properties;
import javax.sql.DataSource;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.env.Environment;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.orm.hibernate4.HibernateTemplate;
import org.springframework.orm.hibernate4.HibernateTransactionManager;
import org.springframework.orm.hibernate4.LocalSessionFactoryBean;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@Configuration
@EnableTransactionManagement
@ComponentScan({ "com.websirmbano.springmvc.configuration" })
@PropertySource(value = { "classpath:application.properties" })
public class HibernateConfiguration {
@Autowired
private Environment environment;
@Bean
public HibernateTemplate hibernateTemplate() {
return new HibernateTemplate((SessionFactory) sessionFactory());
}
@Bean
public LocalSessionFactoryBean sessionFactory() {
LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
sessionFactory.setDataSource(dataSource());
sessionFactory.setPackagesToScan(new String[] { "com.websirmbano.springmvc.model" });
sessionFactory.setHibernateProperties(hibernateProperties());
return sessionFactory;
}
@Bean
public DataSource dataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName(environment.getRequiredProperty("jdbc.driverClassName"));
dataSource.setUrl(environment.getRequiredProperty("jdbc.url"));
dataSource.setUsername(environment.getRequiredProperty("jdbc.username"));
dataSource.setPassword(environment.getRequiredProperty("jdbc.password"));
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"));
return properties;
}
@Bean
@Autowired
public HibernateTransactionManager transactionManager(SessionFactory s) {
HibernateTransactionManager txManager = new HibernateTransactionManager();
txManager.setSessionFactory(s);
return txManager;
}
}
where am i getting it wrong
regards
leon
catalinaがdaoインターフェイスを検出できなかったという例外があります。あなたはそれが道にあると確信していますか? – efekctive