2012-02-14 2 views
0

Spring 1.2.8とHibernate 3.1を使用しているJSF 1.1 WebアプリケーションでOpenSessionInViewFilterを使用しています。フィルタは正常に動作していました。今、Spring 3.1とHibernate 4.0に移行しました。次のエラーが発生しています。Spring 1.2.8/Hibernate 3.1からSpring 3.1/Hibernate 4.0への移行後にOpenSessionInViewFilterが動作しない

javax.faces.el.EvaluationException: Cannot get value for expression '#{infobardisplay.projectList}' 
    at org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:405) 
    at javax.faces.component.UISelectItems.getValue(UISelectItems.java:58) 
    at org.apache.myfaces.shared_impl.util.SelectItemsIterator.hasNext(SelectItemsIterator.java:105) 
    at org.apache.myfaces.shared_impl.renderkit.RendererUtils.internalGetSelectItemList(RendererUtils.java:450) 
    at org.apache.myfaces.shared_impl.renderkit.RendererUtils.getSelectItemList(RendererUtils.java:428) 
    at org.apache.myfaces.shared_impl.renderkit.html.HtmlRendererUtils.internalRenderSelect(HtmlRendererUtils.java:294) 
    at org.apache.myfaces.shared_impl.renderkit.html.HtmlRendererUtils.renderMenu(HtmlRendererUtils.java:267) 
    at org.apache.myfaces.shared_impl.renderkit.html.HtmlMenuRendererBase.encodeEnd(HtmlMenuRendererBase.java:59) 
    at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:539) 
    at javax.faces.webapp.UIComponentTag.encodeEnd(UIComponentTag.java:498) 
    at javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:366) 
    at org.apache.jsp.infobar_jsp._jspx_meth_h_005fselectOneMenu_005f0(infobar_jsp.java:244) 
    at org.apache.jsp.infobar_jsp._jspx_meth_h_005fform_005f0(infobar_jsp.java:152) 
    at org.apache.jsp.infobar_jsp._jspService(infobar_jsp.java:107) 
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:326) 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:253) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) 
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:734) 
    at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:639) 
    at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:576) 
    at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:968) 
    at org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:621) 
    at org.apache.struts.tiles.TilesUtilImpl.doInclude(TilesUtilImpl.java:99) 
    at org.apache.struts.tiles.TilesUtil.doInclude(TilesUtil.java:135) 
    at org.apache.struts.taglib.tiles.InsertTag.doInclude(InsertTag.java:760) 
    at org.apache.struts.taglib.tiles.InsertTag$InsertHandler.doEndTag(InsertTag.java:892) 
    at org.apache.struts.taglib.tiles.InsertTag.doEndTag(InsertTag.java:462) 
    at org.apache.jsp.templates.tiles_005fw_jsp._jspx_meth_tiles_005finsert_005f1(tiles_005fw_jsp.java:725) 
    at org.apache.jsp.templates.tiles_005fw_jsp._jspx_meth_f_005fsubview_005f1(tiles_005fw_jsp.java:699) 
    at org.apache.jsp.templates.tiles_005fw_jsp._jspx_meth_f_005fview_005f0(tiles_005fw_jsp.java:564) 
    at org.apache.jsp.templates.tiles_005fw_jsp._jspService(tiles_005fw_jsp.java:207) 
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:326) 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:253) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) 
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:734) 
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:541) 
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:479) 
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:407) 
    at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:419) 
    at org.apache.myfaces.tomahawk.application.jsp.JspTilesViewHandlerImpl.dispatch(JspTilesViewHandlerImpl.java:236) 
    at org.apache.myfaces.tomahawk.application.jsp.JspTilesViewHandlerImpl.renderView(JspTilesViewHandlerImpl.java:222) 
    at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41) 
    at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132) 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:140) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) 
    at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:100) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) 
    at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) 
    at net.assetool.webapp.filter.MessageFilter.doFilter(MessageFilter.java:49) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) 
    at net.assetool.webapp.filter.GZIPFilter.doFilter(GZIPFilter.java:49) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) 
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) 
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) 
    at com.opensymphony.clickstream.ClickstreamFilter.doFilter(ClickstreamFilter.java:42) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) 
    at net.assetool.webapp.filter.ActionFilter.doFilter(ActionFilter.java:126) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) 
    at org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:119) 
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) 
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:292) 
    at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:108) 
    at org.acegisecurity.intercept.web.SecurityEnforcementFilter.doFilter(SecurityEnforcementFilter.java:197) 
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303) 
    at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:143) 
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303) 
    at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:220) 
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303) 
    at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:173) 
    at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:120) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) 
    at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:139) 
    at org.jboss.as.web.NamingValve.invoke(NamingValve.java:57) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:154) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:667) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:952) 
    at java.lang.Thread.run(Thread.java:662) 
Caused by: javax.faces.el.EvaluationException: Exception getting value of property projectList of base of type : net.assetool.infobardisplay.InfoBarDisplay 
    at org.apache.myfaces.el.PropertyResolverImpl.getValue(PropertyResolverImpl.java:99) 
    at org.apache.myfaces.el.ELParserHelper$MyPropertySuffix.evaluate(ELParserHelper.java:535) 
    at org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:145) 
    at org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:386) 
    ... 105 more 
Caused by: javax.faces.el.EvaluationException: Bean: net.assetool.infobardisplay.InfoBarDisplay, property: projectList 
    at org.apache.myfaces.el.PropertyResolverImpl.getProperty(PropertyResolverImpl.java:461) 
    at org.apache.myfaces.el.PropertyResolverImpl.getValue(PropertyResolverImpl.java:85) 
    ... 108 more 
Caused by: java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.apache.myfaces.el.PropertyResolverImpl.getProperty(PropertyResolverImpl.java:457) 
    ... 109 more 
Caused by: org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is java.lang.NullPointerException 
    at org.springframework.orm.hibernate4.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:428) 
    at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:371) 
    at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:335) 
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:105) 
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) 
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) 
    at $Proxy55.getProjects(Unknown Source) 
    at net.assetool.infobardisplay.InfoBarDisplay.getProjectList(InfoBarDisplay.java:486) 
    ... 114 more 
Caused by: java.lang.NullPointerException 
    at org.springframework.orm.hibernate4.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:342) 
    ... 121 more 

これは、クラス

import javax.faces.context.FacesContext; 

import org.springframework.transaction.annotation.Transactional; 

//Default is read only 
@Transactional 
public class AuthorisationManagerSecurityImpl extends BaseManager implements 
    net.assetool.tabmenu.auth.Security { 
    public final static String PERMISSION_CALCULATION = "calculationPerm"; 

    public final static String PERMISSION_SBC = "navigateSbc"; 

    // TODO Javadoc 
    @Transactional(readOnly = false) 
    public boolean isUserInRole(String pRole) { 
    boolean isUserInRole = false; 
    FacesContext lContext = FacesContext.getCurrentInstance(); 
    AuthorisationManager authorisationManager = (AuthorisationManager) lContext 
     .getApplication().getVariableResolver().resolveVariable(lContext, 
      "authorisationManager"); 

    if (pRole.contains(PERMISSION_SBC)) { 
     Long currentProjectPk = authorisationManager.getCurrentProjectPk(); 
     if (currentProjectPk != null) { 
     isUserInRole = authorisationManager.hasUserProjectPermission(
      currentProjectPk, ""); 
     } 
    } else if (pRole.contains(PERMISSION_CALCULATION)) { 
     Long currentProjectPk = authorisationManager.getCurrentProjectPk(); 
     if (currentProjectPk != null) { 
     isUserInRole = true; 
     } 
    } else { 
     isUserInRole = authorisationManager.hasUserAnyPermission(pRole); 
    } 
    return isUserInRole; 
    } 

} 

TransactonManagerです:

<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean" abstract="false" singleton="true" lazy-init="default" autowire="default" dependency-check="default"> 
    <property name="dataSource"> 
     <ref bean="dataSource"/> 
    </property> 
    <property name="mappingResources"> 
     <list> 
     </list> 
    </property> 
<property name="hibernateProperties"> 
     <props> 
     <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop> 

     <prop key="hibernate.connection.release_mode">auto</prop> 
     </props> 
    </property> 
    </bean> 

<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager" abstract="false" singleton="true" lazy-init="default" autowire="default" dependency-check="default"> 
    <property name="sessionFactory"> 
     <ref local="sessionFactory"/> 
    </property> 
    </bean> 

私たちは、セッションオブジェクトを取得されていません。これはどのようにして起こり、どのように解決できますか?

+0

私は[org.springframework.orm.hibernate4.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:342)のソースコード](http://grepcode.com/file/repository.springsource.com/org)を見ています。 .springframework/org.springframework.orm/3.1.0/org/springframework/orm/hibernate4/HibernateTransactionManager.java#342)、Springは変換を作成できないようです。ロギング・レベルを上げてログを注意深く読んでください。たぶん変換マネージャは正しく設定されていないかもしれません。 –

+0

こんにちはPeter、私はTransation Managerの設定で自分の投稿を編集しました。 – neni

+0

レベルINFOをorg.springframework.ormに設定し、org.hibernateを読み込み、すべてが起動したら読み込みます。 –

答えて

1

問題はSpringライブラリを変更することで解決しました。当初、spring-framework-3.1.0.RC2を使用していました。 RC2リリースにはいくつかのバグがあります。 RC2ライブラリを新しいspring-framework-3.1.0.RELEASEに置き換えました。

関連する問題