2013-08-27 3 views
1

Je sais que la configuration d'OSIVF est un point commun. J'ai lu toutes les pages que j'ai pu trouver au cours de ces deux derniers jours, mais rien ne semble me sortir de ce problème. J'ai réussi à me confondre, tho. J'essaie de garder cette config très simple car l'application web est assez simple. Eh bien, voici l'erreur:OpenSessionInViewFilter ne peut pas trouver WebApplicationContext

java.lang.IllegalStateException: No WebApplicationContext found: no ContextLoaderListener registered? 
org.springframework.web.context.support.WebApplicationContextUtils.getRequiredWebApplicationContext(WebApplicationContextUtils.java:90) 
org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.lookupSessionFactory(OpenSessionInViewFilter.java:190) 

Voici le web.xml:

<web-app version="2.4" 
    xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 

    <display-name>Test MVC Application</display-name> 

    <servlet> 
     <servlet-name>onepic</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>onepic</servlet-name> 
     <url-pattern>/</url-pattern> 
    </servlet-mapping> 

    <filter> 
     <filter-name>hibernateFilter</filter-name> 
     <filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class> 
     <init-param> 
      <param-name>sessionFactoryBeanName</param-name> 
      <param-value>sessionFactory</param-value> 
     </init-param> 
    </filter> 

    <filter-mapping> 
     <filter-name>hibernateFilter</filter-name> 
     <url-pattern>/</url-pattern> 
    </filter-mapping> 



    <filter> 
     <filter-name>CharacterEncodingFilter</filter-name> 
     <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 
     <init-param> 
      <param-name>encoding</param-name> 
      <param-value>UTF-8</param-value> 
     </init-param> 
     <init-param> 
      <param-name>forceEncoding</param-name> 
      <param-value>true</param-value> 
     </init-param> 
    </filter> 
    <filter-mapping> 
     <filter-name>CharacterEncodingFilter</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 


</web-app> 

Enfin, voici quelques morceaux de onepic-servlet.xml:

<bean id="datasource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> 
    <property name="driverClassName" value="com.mysql.jdbc.Driver"/> 
    <property name="url" value="jdbc:mysql://localhost:3306/onePic?characterEncoding=UTF-8"/> 
    <property name="username" value="onePic"/> 
    <property name="password" value="onePic"/> 
</bean> 

<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 
    <property name="dataSource" ref="datasource" /> 
    <property name="packagesToScan" value="com.sandofamily.onePic"/> 
    <property name="hibernateProperties"> 
     <props> 
      <prop key="hibernate.dialect"> org.hibernate.dialect.H2Dialect</prop> 
      <prop key="hibernate.show_sql">true</prop> 
     </props> 
    </property> 
</bean> 

<tx:annotation-driven/> 

<bean id="transactionManager" 
     class="org.springframework.orm.hibernate4.HibernateTransactionManager"> 
    <property name="sessionFactory" ref="sessionFactory"></property> 
</bean> 

Encore une fois, je suis Je suis désolé d'avoir à redire un problème aussi commun, mais je dois manquer un peu de connaissances qui relie tout cela.

+0

Je pense qu'il est préférable de commencer une autre question à propos de cet autre problème, parce que cela va être source de confusion pour ceux qui essaient de trouver la même solution. –

+0

Oui, j'ai fait merci. J'ai un peu hué cette question. La nature de la situation a changé. Je vais en créer un nouveau. Bottom line est [link] (http://stackoverflow.com/questions/6451377/loading-context-in-spring-using-web-xml) corrige une partie. –

+0

ok, si ma réponse vous a aidé pour votre problème original, alors vous pouvez vérifier la réponse comme la bonne. –

Répondre

1

Vous n'avez pas configuré votre contexte dans votre fichier web.xml. Lorsque Spring tente de trouver son contexte, vous obtenez cette erreur.

This montre comment configurer Spring en utilisant un fichier xml, mais vous pouvez également le faire en utilisant une configuration Java basée. Vous pouvez trouver quelque chose here.

+0

Thx! - le contexte et les systèmes ajoutés se déploient, mais curieusement, le filtre ne fonctionne pas. (message pendant le marqueur libre: "Impossible d'initialiser le proxy - pas de session") Le seul indice que j'ai est un avertissement d'hibernation. Avant d'ajouter "Contexte", le message WARN HHH000431 est apparu une fois en déploiement, maintenant il est deux fois. Hareng rouge? –

+0

pouvez-vous éditer votre question avec votre code de filtre? Vérifiez également cela et voyez si cela aide ou pas: https://community.jboss.org/wiki/OpenSessioninView –

+0

Si vous pouviez ajouter la nouvelle erreur aiderait. –

Questions connexes