Я пытаюсь привнести пружинную фасоль в JSF фасоль, я использую Spring 3.1 и JSF 2 (Mojarra 2.1.7)Proxy Исключения при нагнетании пружинного компонента в JSF фасоли
Без много говорить мою конфигурация и код и исключения перечислены в следующем:
StudentService.java:
@Scope(proxyMode=ScopedProxyMode.TARGET_CLASS)
public class StudentsService extends AbstractMaqraaService {
@Override
public Set<Class<?>> getTypes() {
// TODO Auto-generated method stub
return null;
}
public Student registerStudent(Student student) {
return this.store(student);
}
}
StudentRegistrationMBean.java:
@ManagedBean(name="studentRegistrationMBean")
@SessionScoped
public class StudentRegistrationMBean extends AbstractMBean {
private Student student;
@ManagedProperty (value="#{studentsService}")
private StudentsService studentsService;
public StudentRegistrationMBean() {
this.student = new Student();
}
/*Setters and getters omitted here only*/
public String register() {
studentsService.registerStudent(student);
return "manageStudents";
}
}
Spring боб в модуле файл контекста XML:
<bean id="abstractMaqraaService" class="org.tts.maqraa.service.AbstractMaqraaService" abstract="true"/>
<bean id="studentsService" class="org.tts.maqraa.service.StudentsService" lazy-init="default" parent="abstractMaqraaService"/>
лица-config.xml:
...
<application>
<el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
</application>
...
Eception:
TRACE [http-bio-8080-exec-3] (SpringBeanELResolver.java:53) - Successfully resolved variable 'studentsService' in Spring BeanFactory
DEBUG [http-bio-8080-exec-3] (AbstractBeanFactory.java:245) - Returning cached instance of singleton bean 'studentsService'
نوار 13, 2012 11:10:45 ص com.sun.faces.application.view.FaceletViewHandlingStrategy handleRenderException
SEVERE: Error Rendering View[/teacher/registerNewStudent.xhtml]
com.sun.faces.mgbean.ManagedBeanCreationException: Unable to set property studentsService for managed bean studentRegistrationMBean
at com.sun.faces.mgbean.ManagedBeanBuilder$BakedBeanProperty.set(ManagedBeanBuilder.java:615)
at com.sun.faces.mgbean.ManagedBeanBuilder.buildBean(ManagedBeanBuilder.java:133)
...
at java.lang.Thread.run(Unknown Source)
Caused by: javax.el.ELException: Cannot convert [email protected] of type class $Proxy10 to class org.tts.maqraa.service.StudentsService
at org.apache.el.lang.ELSupport.coerceToType(ELSupport.java:420)
at org.apache.el.ExpressionFactoryImpl.coerceToType(ExpressionFactoryImpl.java:47)
at com.sun.faces.el.ELUtils.coerce(ELUtils.java:536)
at com.sun.faces.mgbean.BeanBuilder$Expression.evaluate(BeanBuilder.java:592)
at com.sun.faces.mgbean.ManagedBeanBuilder$BakedBeanProperty.set(ManagedBeanBuilder.java:606)
... 47 more
ERROR [http-bio-8080-exec-3] (MaqraaExceptionHandler.java:83) - Exception
javax.el.ELException: Cannot convert [email protected] of type class $Proxy10 to class org.tts.maqraa.service.StudentsService
at org.apache.el.lang.ELSupport.coerceToType(ELSupport.java:420)
...
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Я много искал в Google и нашел много вопросов, здесь возникали такие проблемы, как мои, но ничего не помогло мне, я надеюсь, что найду свое решение для своего особого случая !!
Я не использую Spring, но не должна ваш 'StudentRegistrationMBean' будет Spring управляемого компонента вместо JSF управляемого компонента для того, чтобы иметь возможность внедрить управляемый bean-компонент Spring? По крайней мере, это то, как работает инъекция зависимостей JSF и стандартная инъекция зависимостей стандарта ISO EE 6. – BalusC
@BalusC Я использую '@ ManagedBean' и' SpringBeanFacesELResolver' для инъекций! почему я не должен этого делать! во всяком случае, я просто следую многим статьям и статьям, рассказывающим о том, как вводить инъекции, и, кажется, во всех этих статьях инъекционная работа хорошо работает! и у меня просто есть небольшая проблема, которая дала мне головную боль: | –