# ManagedBeanCreationException



## Fantasma (11. Jul 2011)

Hallo ich habe noch ein Exception Problem.

Hoffentlich kann mir jemand helfen.

Ich glaube es haengt damit zusammen, dass ich eine ManagedBean nicht richtig in eine andere injeciert habe und deshalb eine property nicht vorhanden ist. Aber ich bin mit nicht wirklcih sicher. 
Ich hoffe es kann mir wer helfen bei der Lösung.

Also ich habe eine LoginBean und die hat als property nach einem erflogreichen Login den actualUser gespeichert(Usuario ist eine @Entity):

```
@ManagedBean(name="loginBean")
@SessionScoped
public class LoginBean {
//......

private Usuario usuarioActual;

//........
	public Usuario getUsuarioActual() {
		return usuarioActual;
	}

	public void setUsuarioActual(Usuario ususarioActual) {
		this.usuarioActual = ususarioActual;
	}
}
```

Dann habe ich eine andere ManagedBean, die das Postfach des Users verwalten soll:

```
@ManagedBean(name="mensajeBean")
@ViewScoped
public class MensajeBean {
//.....
	@EJB
	private ServicioMensajeria servMens;
	
	@ManagedProperty(value= "#{loginBean.usuarioActual}")
	private LoginBean loginBean;
//.....

	public LoginBean getLoginBean() {
		return loginBean;
	}
	public void setLoginBean(LoginBean loginBean) {
		this.loginBean = loginBean;
	}
```

Innerhalb der MensajeBean habe ich eine Methode, die die Nachrichten von dem User aus der DB holen soll:

```
public String cargarMensajesEnviados(){
//		try{

			this.mensajes = servMens.listarMensajesEnviados(loginBean.getUsuarioActual());

//		}
//		catch(NullPointerException ex){
//			return "mensajes";
//		}
		return "mensajes";
	}
```

Und hier springt bei mir die Exception:
"Eigenschaft loginBean für verwalteten Bean mensajeBean" kann nicht festgelegt werden"
der Stack Trace schaut so aus:

```
com.sun.faces.mgbean.ManagedBeanCreationException: Eigenschaft loginBean für verwalteten Bean mensajeBean" kann nicht festgelegt werden.
	at com.sun.faces.mgbean.ManagedBeanBuilder$BakedBeanProperty.set(ManagedBeanBuilder.java:611)
	at com.sun.faces.mgbean.ManagedBeanBuilder.buildBean(ManagedBeanBuilder.java:129)
	at com.sun.faces.mgbean.BeanBuilder.build(BeanBuilder.java:100)
	at com.sun.faces.mgbean.BeanManager.createAndPush(BeanManager.java:405)
	at com.sun.faces.mgbean.BeanManager.create(BeanManager.java:265)
	at com.sun.faces.el.ManagedBeanELResolver.resolveBean(ManagedBeanELResolver.java:191)
	at com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:73)
	at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:175)
	at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:71)
	at org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:67)
	at org.apache.el.parser.AstValue.getValue(AstValue.java:115)
	at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:187)
	at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:106)
	at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:190)
	at org.primefaces.component.datatable.DataTable.getSelection(DataTable.java:222)
	at org.primefaces.component.datatable.DataTableRenderer.encodeTbody(DataTableRenderer.java:452)
	at org.primefaces.component.datatable.DataTableRenderer.encodeRegularTable(DataTableRenderer.java:201)
	at org.primefaces.component.datatable.DataTableRenderer.encodeMarkup(DataTableRenderer.java:180)
	at org.primefaces.component.datatable.DataTableRenderer.encodeEnd(DataTableRenderer.java:85)
	at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:879)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1650)
	at javax.faces.render.Renderer.encodeChildren(Renderer.java:164)
	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1643)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1646)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1646)
	at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:389)
	at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:127)
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:117)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:135)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:309)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:324)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:181)
	at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.event(CatalinaContext.java:285)
	at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.invoke(CatalinaContext.java:261)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:88)
	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:100)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:53)
	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:654)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951)
	at java.lang.Thread.run(Unknown Source)
Caused by: javax.el.ELException: Cannot convert com.entity.Usuario@89f01c of type class com.entity.Usuario to class com.vista.seguridad.LoginBean
	at org.apache.el.lang.ELSupport.coerceToType(ELSupport.java:470)
	at org.apache.el.ExpressionFactoryImpl.coerceToType(ExpressionFactoryImpl.java:46)
	at com.sun.faces.el.ELUtils.coerce(ELUtils.java:530)
	at com.sun.faces.mgbean.BeanBuilder$Expression.evaluate(BeanBuilder.java:588)
	at com.sun.faces.mgbean.ManagedBeanBuilder$BakedBeanProperty.set(ManagedBeanBuilder.java:602)
	... 50 more
```
]


----------



## SlaterB (11. Jul 2011)

warum schreibst du
[c]@ManagedProperty(value= "#{loginBean.usuarioActual}")[/c]
was bedeutet jeder einzelne Buchstabe dieser Konfiguration,
ginge auch
[c]@ManagedProperty(value= "#{loginBean.hollahop}")[/c]
oder warum muss es das erste sein?

denn das scheint genau das Problem zu sein, siehe Exception-Zeile
> Caused by: javax.el.ELException: Cannot convert com.entity.Usuario@89f01c of type class com.entity.Usuario to class com.vista.seguridad.LoginBean

"loginBean.usuarioActual" beschreibt auf irgendeine Weise ein Usuario-Objekt, kein LoginBean,
ändere das Attribut auf Usuario oder 'manage' das gesamte LoginBean dorthin


----------



## Fantasma (11. Jul 2011)

Hallo SlaterB:
Danke für deinen Vorschlag.

Ich habe jetzt die Injection in der MensajeBean so abgeändert:

```
@ManagedProperty(value= "#{loginBean}")
	private LoginBean loginBean;
```
Und es funst erstmal. Also die ursprüngliche Fehlermeldung ist weg und ich kann schon mal auf die Setie zugreifen. 

Jetzt habe ich eine Methode in der MensajeBean mit der ich die Nachrichten für diesen Aktuellen Benutzer aufrufen will:

```
public String cargarMensajesEnviados(){
//		try{
			this.mensajes = servMens.listarMensajesEnviados							(loginBean.getUsuarioActual());
//		}
//		catch(NullPointerException ex){
//			return "mensajes";
//		}
		return "mensajes";
	}
```

Wenn ich diese Methode jedoch aufrufe bekomme ich folgendes:
"javax.ejb.EJBTransactionRolledbackException: Parameter value [9] was not matching type [com.entity.Usuario]"

Der Parameter 9 ist die ID vom aktuellen Benutzer,( das ist eigentlich eine gute Nachricht für mich). Die Methode in einer anderen SessionBean, die letztendlch die DB Abfrage macht bekommt eine Benutzer ID und gibt eine <List> mit den Nachrichten zurück.

Ich durchwühle den gesammten Code und finde den Fehler einfach nicht. Weist du wie ich genau ausmachen kann wo dieser Rollback/die Exception ausgelöst wird? Ich habe ja auch bei den Methodenaufrufen keine Fehler gefunden. (Die Methoden werden alle mit den richtigen werten aufgerufen und wo ich einen User übergeben muss bekommt die methode einen User, und wo ich eine ID übergeben muss bekommt die methode eine id.)

Ich hab noch eine andere Frage allgemein zu ManagedProperties:
Ich kann ja nur eine ManagedBean mit hoeherer Lebensdauer in eine andere ManagedBean injizieren. Hab ich das so richtig verstanden? In meinem Fall oben heisst das, dass die LoginBean eine längere Lebensdauer haben muss, als die MensajeBean, oder? 

Danke schonmal für die Hilfe

Fantasma


----------



## SlaterB (11. Jul 2011)

was ist denn servMens.listarMensajesEnviados? der Sprache nach scheint das ja auch individueller Code zu sein,
wenn darin der Fehler auftritt, dann vielleicht genauer zu bestimmen dort? 
irgendeine DB-Abfrage mit Parametern zufällig? gibts einen StackTrace?
oder tritt die Exception eher allgemein am Ende des übergeordneten Vorgangs auf?

leider sagt sie mir an sich nicht viel und auch sonst kann ich nichts mehr beitragen, arbeite nicht mit derartigen Dingen

edit:
du schreibst ja auch
> Der Parameter 9 ist die ID vom aktuellen Benutzer,( das ist eigentlich eine gute Nachricht für mich). 
> Die Methode in einer anderen SessionBean, die letztendlch die DB Abfrage macht bekommt eine 
> Benutzer ID und gibt eine <List> mit den Nachrichten zurück.

was kannst du denn zu dieser Abfrage sagen, was zur Methode listarMensajesEnviados, 
welchen Typ hat z.B. der Parameter, vielleicht sollte man Long als Id übergeben?
funktionierte die Methode schon jemals in anderer Verwendung?


----------



## Fantasma (11. Jul 2011)

hmm... also die aufruf-kette schaut so aus:


```
public String cargarMensajesEnviados(){
//		try{
			this.mensajes = servMens.listarMensajesEnviados(loginBean.getUsuarioActual());
//		}
//		catch(NullPointerException ex){
//			return "mensajes";
//		}
		return "mensajes";
```

"servMens.listarMensajesEnviados(loginBean.getUsuarioActual());"

```
public List<Mensaje> listarMensajesEnviados(Usuario usuario) {
		
		return mensajeDAO.listarMensajesEnviados(usuario.getUserId(), 1, 10);

	}
```
"mensajeDAO.listarMensajesEnviados(usuario.getUserId(), 1, 10);"

```
public List<Mensaje> listarMensajesEnviados(int usuarioID, int pagina, int cantidad) {
		try{
			return (List<Mensaje>) em.createNamedQuery("Mensaje.findEnviados", Mensaje.class)
					.setParameter("from",usuarioID).setFirstResult((pagina) * cantidad).setMaxResults(cantidad)
					.getResultList();
		}catch(EntityNotFoundException ex){
			return null;
		}
	}
```

Wobei die NamedQuery so aussieht:

```
@NamedQuery(name="Mensaje.findEnviados",
			query="SELECT m FROM Mensaje m WHERE m.from = :from"),
```

Der Stack trace sieht so aus:
"javax.ejb.EJBTransactionRolledbackException: Parameter value [9] was not matching type [com.entity.Usuario]"

```
javax.faces.el.EvaluationException: javax.ejb.EJBTransactionRolledbackException: Parameter value [9] was not matching type [com.entity.Usuario]
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:98)
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:98)
	at javax.faces.component.UICommand.broadcast(UICommand.java:311)
	at javax.faces.component.UIData.broadcast(UIData.java:912)
	at org.primefaces.component.datatable.DataTable.broadcast(DataTable.java:630)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:781)
	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1246)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:77)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:324)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:181)
	at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.event(CatalinaContext.java:285)
	at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.invoke(CatalinaContext.java:261)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:88)
	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:100)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:53)
	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:654)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951)
	at java.lang.Thread.run(Unknown Source)
Caused by: javax.ejb.EJBTransactionRolledbackException: Parameter value [9] was not matching type [com.entity.Usuario]
	at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.handleInCallerTx(CMTTxInterceptor.java:148)
	at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invokeInCallerTx(CMTTxInterceptor.java:227)
	at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.required(CMTTxInterceptor.java:353)
	at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invoke(CMTTxInterceptor.java:209)
	at org.jboss.ejb3.tx2.aop.CMTTxInterceptorWrapper.invoke(CMTTxInterceptorWrapper.java:52)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.security.Ejb3AuthenticationInterceptorv2.invoke(Ejb3AuthenticationInterceptorv2.java:182)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:41)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.BlockContainerShutdownInterceptor.invoke(BlockContainerShutdownInterceptor.java:67)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.core.context.CurrentInvocationContextInterceptor.invoke(CurrentInvocationContextInterceptor.java:47)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.aspects.currentinvocation.CurrentInvocationInterceptor.invoke(CurrentInvocationInterceptor.java:67)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.interceptor.EJB3TCCLInterceptor.invoke(EJB3TCCLInterceptor.java:86)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.session.SessionSpecContainer.invoke(SessionSpecContainer.java:323)
	at org.jboss.ejb3.session.SessionSpecContainer.invoke(SessionSpecContainer.java:380)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.jboss.ejb3.proxy.impl.handler.session.SessionLocalProxyInvocationHandler$LocalContainerInvocation.invokeTarget(SessionLocalProxyInvocationHandler.java:184)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:111)
	at org.jboss.ejb3.async.impl.interceptor.AsynchronousClientInterceptor.invoke(AsynchronousClientInterceptor.java:143)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.proxy.impl.handler.session.SessionLocalProxyInvocationHandler$LocalInvokableContextHandler.invoke(SessionLocalProxyInvocationHandler.java:159)
	at $Proxy166.invoke(Unknown Source)
	at org.jboss.ejb3.proxy.impl.handler.session.SessionProxyInvocationHandlerBase.invoke(SessionProxyInvocationHandlerBase.java:185)
	at $Proxy164.listarMensajesEnviados(Unknown Source)
	at com.logica.serviciomensajeria.ServicioMensajeriaImpl.listarMensajesEnviados(ServicioMensajeriaImpl.java:21)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeTarget(MethodInvocation.java:122)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:111)
	at org.jboss.ejb3.interceptors.container.ContainerMethodInvocationWrapper.invokeNext(ContainerMethodInvocationWrapper.java:72)
	at org.jboss.ejb3.interceptors.aop.InterceptorSequencer.invoke(InterceptorSequencer.java:76)
	at org.jboss.ejb3.interceptors.aop.InterceptorSequencer.aroundInvoke(InterceptorSequencer.java:62)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.jboss.aop.advice.PerJoinpointAdvice.invoke(PerJoinpointAdvice.java:174)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.fillMethod(InvocationContextInterceptor.java:74)
	at org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor_z_fillMethod_30195134.invoke(InvocationContextInterceptor_z_fillMethod_30195134.java)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.setup(InvocationContextInterceptor.java:90)
	at org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor_z_setup_30195134.invoke(InvocationContextInterceptor_z_setup_30195134.java)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.async.impl.interceptor.AsynchronousServerInterceptor.invoke(AsynchronousServerInterceptor.java:128)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:62)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:56)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:68)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.core.context.SessionInvocationContextAdapter.proceed(SessionInvocationContextAdapter.java:95)
	at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:247)
	at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.required(CMTTxInterceptor.java:349)
	at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invoke(CMTTxInterceptor.java:209)
	at org.jboss.ejb3.tx2.aop.CMTTxInterceptorWrapper.invoke(CMTTxInterceptorWrapper.java:52)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.security.Ejb3AuthenticationInterceptorv2.invoke(Ejb3AuthenticationInterceptorv2.java:182)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:41)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.BlockContainerShutdownInterceptor.invoke(BlockContainerShutdownInterceptor.java:67)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.core.context.CurrentInvocationContextInterceptor.invoke(CurrentInvocationContextInterceptor.java:47)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.aspects.currentinvocation.CurrentInvocationInterceptor.invoke(CurrentInvocationInterceptor.java:67)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.interceptor.EJB3TCCLInterceptor.invoke(EJB3TCCLInterceptor.java:86)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.session.SessionSpecContainer.invoke(SessionSpecContainer.java:323)
	at org.jboss.ejb3.session.SessionSpecContainer.invoke(SessionSpecContainer.java:380)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.jboss.ejb3.proxy.impl.handler.session.SessionLocalProxyInvocationHandler$LocalContainerInvocation.invokeTarget(SessionLocalProxyInvocationHandler.java:184)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:111)
	at org.jboss.ejb3.async.impl.interceptor.AsynchronousClientInterceptor.invoke(AsynchronousClientInterceptor.java:143)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.proxy.impl.handler.session.SessionLocalProxyInvocationHandler$LocalInvokableContextHandler.invoke(SessionLocalProxyInvocationHandler.java:159)
	at $Proxy166.invoke(Unknown Source)
	at org.jboss.ejb3.proxy.impl.handler.session.SessionProxyInvocationHandlerBase.invoke(SessionProxyInvocationHandlerBase.java:185)
	at $Proxy167.listarMensajesEnviados(Unknown Source)
	at com.vista.mensajes.MensajeBean.cargarMensajesEnviados(MensajeBean.java:47)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.el.parser.AstValue.invoke(AstValue.java:196)
	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
	at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:102)
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:84)
	... 29 more
Caused by: java.lang.IllegalArgumentException: Parameter value [9] was not matching type [com.entity.Usuario]
	at org.hibernate.ejb.AbstractQueryImpl.registerParameterBinding(AbstractQueryImpl.java:360)
	at org.hibernate.ejb.QueryImpl.setParameter(QueryImpl.java:364)
	at com.dao.MensajeDAOImpl.listarMensajesEnviados(MensajeDAOImpl.java:34)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeTarget(MethodInvocation.java:122)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:111)
	at org.jboss.ejb3.interceptors.container.ContainerMethodInvocationWrapper.invokeNext(ContainerMethodInvocationWrapper.java:72)
	at org.jboss.ejb3.interceptors.aop.InterceptorSequencer.invoke(InterceptorSequencer.java:76)
	at org.jboss.ejb3.interceptors.aop.InterceptorSequencer.aroundInvoke(InterceptorSequencer.java:62)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.jboss.aop.advice.PerJoinpointAdvice.invoke(PerJoinpointAdvice.java:174)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.fillMethod(InvocationContextInterceptor.java:74)
	at org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor_z_fillMethod_30195134.invoke(InvocationContextInterceptor_z_fillMethod_30195134.java)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.setup(InvocationContextInterceptor.java:90)
	at org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor_z_setup_30195134.invoke(InvocationContextInterceptor_z_setup_30195134.java)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.async.impl.interceptor.AsynchronousServerInterceptor.invoke(AsynchronousServerInterceptor.java:128)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:62)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:56)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:68)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.core.context.SessionInvocationContextAdapter.proceed(SessionInvocationContextAdapter.java:95)
	at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invokeInCallerTx(CMTTxInterceptor.java:223)
	... 142 more
```

Kannst du da irgendwas raussehen?

Neben bei kämpfe ich ncoh mit dem remote debugging über eclypse und bekomme das einfach nicht richtig zum laufen 

Danke schon mal für Deine Unterstützung.

Fantasma


----------



## SlaterB (11. Jul 2011)

ist wohl andersrum: du übergibst als Id Long, es muss aber das Objekt sein, weil from in Mensaje ein Attribut vom Typ Usuario ist?
also entweder [c]setParameter("from",usuarioID)[/c] ändern, oder die Query umstellen auf in etwa 
[c]WHERE m.from.id = :from[/c] bzw. schöner wäre dann [c]WHERE m.from.id = :fromId[/c] mit entsprechend angepassten setParameter()

das hier ist der entscheidene Part der Exception:

```
Caused by: java.lang.IllegalArgumentException: Parameter value [9] was not matching type [com.entity.Usuario]
	at org.hibernate.ejb.AbstractQueryImpl.registerParameterBinding(AbstractQueryImpl.java:360)
	at org.hibernate.ejb.QueryImpl.setParameter(QueryImpl.java:364)
	at com.dao.MensajeDAOImpl.listarMensajesEnviados(MensajeDAOImpl.java:34)
```
Parameter wird gesetzt und passt nicht


----------



## Fantasma (11. Jul 2011)

Wow! es funst! 

Die Query schaut jetzt so aus:

```
@NamedQuery(name="Mensaje.findEnviados",
			query="SELECT m FROM Mensaje m WHERE m.from.UserId = :from")
```

Das Problem ist dass ich teilweise bei JPA durcheinander komme. Wann brauche ich die Entity, wann die Id. Ich glaube das ist auch ein Modelierungsproblem. Gibt es da eine Art Best Practices?

Vielen Dank für den Tipp 

Fantasma


----------

