2017-03-20 9 views
0

良い日私は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 
+0

catalinaがdaoインターフェイスを検出できなかったという例外があります。あなたはそれが道にあると確信していますか? – efekctive

答えて

0

@EnableJpaRepositories( "com.websirmbano.springmvc.dao")HibernateConfigurationクラスインチ

関連する問題