2011-02-01 7 views
0

何らかの理由で、EclipseとSpringの両方でフィルタタグが見つからない(赤いマークがある)...どうしたの?特にサーブレットコンテキストXMLでSpringフィルタを使用できない

<?xml version="1.0" encoding="UTF-8"?> 

<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" 
    xmlns:p="http://www.springframework.org/schema/p" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 
     http://www.springframework.org/schema/aop 
     http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 
     http://www.springframework.org/schema/tx 
     http://www.springframework.org/schema/tx/spring-tx-3.0.xsd 
     http://www.springframework.org/schema/context 
     http://www.springframework.org/schema/context/spring-context-3.0.xsd 
     http://www.springframework.org/schema/mvc 
     http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> 


    <bean 
     class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor"></bean> 

    <bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" 
     destroy-method="close"> 
     <property name="driverClassName" value="com.mysql.jdbc.Driver" /> 
     <property name="url" value="jdbc:mysql://localhost/jacciseweb" /> 
     <property name="username" value="root" /> 
     <property name="password" value="siussi" /> 
    </bean> 


    <bean id="mySessionFactory" 
     class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
     <property name="dataSource" ref="myDataSource" /> 
     <property name="annotatedClasses"> 
      <list> 
       <value>it.jsoftware.jacciseweb.beans.Utente 
       </value> 
       <value>it.jsoftware.jacciseweb.beans.Ordine 
       </value> 
      </list> 
     </property> 
     <property name="hibernateProperties"> 
      <props> 
       <prop key="hibernate.dialect"> org.hibernate.dialect.MySQLDialect 
       </prop> 
       <prop key="hibernate.show_sql"> 
        true 
       </prop> 
       <prop key="hibernate.hbm2ddl.auto"> 
        update 
       </prop> 
       <prop key="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</prop> 
      </props> 
     </property> 
    </bean> 



    <filter> 
     <filter-name>hibernateFilter</filter-name> 
     <filter-class> 
      org.springframework.orm.hibernate3.support.OpenSessionInViewFilter 
     </filter-class> 
     <init-param> 
      <param-name>singleSession</param-name> 
      <param-value>true</param-value> 
     </init-param> 
     <init-param> 
      <param-name>sessionFactoryBeanName</param-name> 
      <param-value>mySessionFactory</param-value> 
     </init-param> 
    </filter> 


    <!-- <aop:config> --> 
    <!-- <aop:pointcut id="productServiceMethods" --> 
    <!-- expression="execution(* product.ProductService.*(..))" /> --> 
    <!-- <aop:advisor advice-ref="txAdvice" pointcut-ref="productServiceMethods" 
     /> --> 
    <!-- </aop:config> --> 



    <bean id="acciseHibernateDao" 
     class="it.jsoftware.jacciseweb.model.JAcciseWebManagementDaoHibernate"> 
     <property name="sessionFactory" ref="mySessionFactory" /> 
    </bean> 


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

    <tx:annotation-driven /> 

    <bean id="acciseService" 
     class="it.jsoftware.jacciseweb.model.JAcciseWebManagementServiceImpl"> 
     <property name="dao" ref="acciseHibernateDao" /> 
    </bean> 

    <context:component-scan base-package="it.jsoftware.jacciseweb.controllers"></context:component-scan> 
    <mvc:annotation-driven /> 
    <bean 
     class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" 
     p:synchronizeOnSession="true" /> 

    <bean 
     class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" /> 

    <mvc:resources mapping="/resources/**" location="/resources/" /> 

    <!-- non serve, è annotato --> 
    <!-- <bean name="/accise" class="it.jsoftware.jacciseweb.controllers.MainController"> 
     </bean> --> 



</beans> 

それは「フィルタ」は

答えて

1

<filter>はない春のXMLコンフィグで、web.xmlに配置する必要が無効なコンテンツであると言います。

基本的に、あなたはweb.xmlでこれを必要とする:

<web-app> 
... 
    <filter> 
     <filter-name>hibernateFilter</filter-name> 
     <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>  
     <init-param> 
      <param-name>singleSession</param-name> 
      <param-value>true</param-value> 
     </init-param> 
     <init-param> 
      <param-name>sessionFactoryBeanName</param-name> 
      <param-value>mySessionFactory</param-value> 
     </init-param> 
    </filter> 

    <filter-mapping> 
     <filter-name>hibernateFilter</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 
... 
</web-app> 
+0

@ gotch4:更新されました。 – axtavt

0

サーブレットフィルタはなく、あなたのSpringコンテキスト、web.xmlに属しています。

あなたはOpenSessionInViewロジックをしたい場合は、があなたの春の設定で行くんOpenSessionInViewInterceptorを(代わりにOpenSessionInViewFilterの)、使用することができます。

インターセプタの登録方法については、docsを参照してください。

関連する問題