spring el不使用@Transactional

spring el不使用@Transactional,spring,jsf-2,spring-transactions,Spring,Jsf 2,Spring Transactions,faces-config.xml - org.springframework.web.jsf.DelegatingVariableResolver applicationContext.xml <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="

faces-config.xml

- org.springframework.web.jsf.DelegatingVariableResolver
applicationContext.xml

<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory" />
</bean>  
<tx:annotation-driven  />
<context:component-scan base-package="com.test"/> 
工作正常,但是当一个方法被@Transactional注释时,会出现以下错误

16:23:13,906 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/jbtst].[Faces Servlet]] (http-localhost-127.0.0.1-8080-1) Servlet.service() for servlet Faces Servlet threw exception: javax.el.PropertyNotFoundException: /index.xhtml @14,49 value="#{authBean.val}": The class '$Proxy28' does not have the property 'val'.
    at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:111) [jsf-impl-2.1.7-jbossorg-2.jar:]
    at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
    at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:182) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
    at javax.faces.component.UIOutput.getValue(UIOutput.java:169) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]

使用spring-3.1时,hibernate3

当您使用
@Transactional
spring创建一个代理,该代理实现与您的类相同的接口,但您的
AuthBean
类不实现接口

解决此问题的最简单方法是使用
val
属性定义一个接口,并让
AuthBean
实现该接口,然后代理也将具有val属性。

这很有帮助



谢谢,从您的答案中获得了一些关键词,再次搜索并获得了解决方案您好,我也面临着与您类似的问题。你能发布解决方案是什么吗?。。。
package com.test.ui;

@Component
@Scope("session")
public class AuthBean {

    @Getter @Setter private String val;

    @Transactional  public void test(){}    //works fine if @Transactional is removed
16:23:13,906 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/jbtst].[Faces Servlet]] (http-localhost-127.0.0.1-8080-1) Servlet.service() for servlet Faces Servlet threw exception: javax.el.PropertyNotFoundException: /index.xhtml @14,49 value="#{authBean.val}": The class '$Proxy28' does not have the property 'val'.
    at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:111) [jsf-impl-2.1.7-jbossorg-2.jar:]
    at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
    at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:182) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
    at javax.faces.component.UIOutput.getValue(UIOutput.java:169) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
<context:component-scan base-package="com.test" scoped-proxy="targetClass" />