1

Я начал свой новый проект mvc Spring, и я решил пойти с SpringSource ToolSuite. Когда я создаю проект, он автоматически создает фильтр urlrewrite в моем web.xml, который мне очень нравится. Однако эта блестящая вещь urlrewrite, похоже, не работает с opensessioninviewfilter. Кто-нибудь может мне помочь?urlrewrite и opensessioninviewfilter не работает вместе

Вот мой web.xml (я пробовал, изменяя порядок фильтров.)

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.5" 
xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 

    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/spring/app-config.xml</param-value> 
    </context-param> 

    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 

    <!-- sessiong neelttei bailgah tohirgoo --> 
    <filter> 
     <filter-name>hibernateFilter</filter-name> 
     <filter-class>org.springframework.orm.hibernate3.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> 

    <!-- Enables clean URLs with JSP views e.g. /welcome instead of /app/welcome --> 
    <filter> 
     <filter-name>UrlRewriteFilter</filter-name> 
     <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class> 
    </filter> 

    <filter-mapping> 
     <filter-name>UrlRewriteFilter</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 

    <!-- Handles all requests into the application --> 
    <servlet> 
     <servlet-name>Spring MVC Dispatcher Servlet</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <init-param> 
      <param-name>contextConfigLocation</param-name> 
      <param-value> 
       /WEB-INF/spring/*.xml 
      </param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <!-- Maps all /app requests to the DispatcherServlet for handling --> 
    <servlet-mapping> 
     <servlet-name>Spring MVC Dispatcher Servlet</servlet-name> 
     <url-pattern>/app/*</url-pattern> 
    </servlet-mapping> 



</web-app> 
+0

Что именно происходит? – axtavt

+0

Фильтр Opensessioninview просто не сработает. У меня есть ленивое исключение инициализации, как будто я не использую фильтр opensessioninview. Я знаю, что из-за этого urlrewritefilter. Поскольку фильтр opensessioninview отлично работает без него, но я действительно не хочу удалять urlrewritefilter по нескольким причинам. – beku8

ответ

0

Это точная вещь происходит со мной и решением, предложенным axtavt над here для другого фильтра работает лакомство на этой тоже.

Просто объявить OpenSessionInViewFilter фильтр-отображение, как это:

<filter-mapping> 
    <filter-name> 
     OpenPersistenceManagerInViewFilter 
    </filter-name> 
    <url-pattern>/app/*</url-pattern> 
    <url-pattern>/api/*</url-pattern> 
    <url-pattern>/admin/*</url-pattern> 
    <dispatcher>REQUEST</dispatcher> 
    <dispatcher>FORWARD</dispatcher> 
</filter-mapping> 

Просто ключевое слово нагрузки упаковывают это помогает, то эта ошибка проявляется при попытке получить доступ к хранилищу на Google App Engine с JDO как:

org.datanucleus.exceptions.NucleusUserException: Object Manager has been closed