My question is 'why this app work with pur Seam and MyFaces, but not with
ICEFaces'
1. Abstract editor class
public abstract class AbstractEditorBean<T extends StandardEntity> extends
AbstractEditorListeGemeinsames<T> implements Serializable {
| .
| .
| protected boolean neu;
|
| @Begin(nested=true, ifOutcome={"editor"})
| public String bearbeiten() {
|
| if (id == null) {
| addWarning(idError());
| return "main";
| }
|
| //Entity holen
| try {
| setEntity((T) em.find(getEntityClass(), Long.parseLong(id)));
| neu = false;
| if (getEntity() == null) throw new Exception();
| } catch (Exception ex) {
| addWarning(findenError());
| return null;
| }
|
| nachLaden();
|
| //Alles ok? Dann Editor anzeigen
| return "editor";
| }
| .
| .
| public boolean getNeu() {
| checkKorrekterAufruf();
| return neu;
| }
| .
| .
| }
|
2. Measurement class
@Stateful
| @Scope(ScopeType.CONVERSATION)
| @Name("messmitteltypEditor")
| @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
| public class MessmitteltypEditorBean extends AbstractEditorBean<Messmitteltyp>
implements MessmitteltypEditor {
|
| @In(required=false) @Out(required=false)
| private Messmitteltyp messmitteltyp;
| .
| .
| }
3. All changes to web.xml, faces-config.xml and lib dirs for ICEFaces as descriped
here:http://support.icesoft.com/jive/servlet/KbServlet/download/623-102-8...
4. The xhtml pages:
a)messmittelTypListe.xhtml
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
| <ui:composition
xmlns="http://www.w3.org/1999/xhtml"
|
xmlns:ui="http://java.sun.com/jsf/facelets"
|
xmlns:h="http://java.sun.com/jsf/html"
|
xmlns:f="http://java.sun.com/jsf/core"
|
xmlns:s="http://jboss.com/products/seam/taglib"
|
xmlns:t="http://myfaces.apache.org/tomahawk"
| template="vorlage-liste.xhtml">
|
| <!-- content -->
|
| <ui:param name="ueberschrift" value="Messmitteltypen" />
| <ui:param name="editor" value="#{messmitteltypEditor}" />
| <ui:param name="liste" value="#{messmitteltypListe}" />
| <ui:param name="login" value="true" />
|
| <ui:define name="content">
|
| .....
|
| </ui:define>
|
| </ui:composition>
|
b)
Template
vorlage-liste.xhtml -> this call AbstractEditor.bearbeiten
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
| <ui:composition
xmlns="http://www.w3.org/1999/xhtml"
|
xmlns:ui="http://java.sun.com/jsf/facelets"
|
xmlns:h="http://java.sun.com/jsf/html"
|
xmlns:f="http://java.sun.com/jsf/core"
|
xmlns:s="http://jboss.com/products/seam/taglib"
|
xmlns:t="http://myfaces.apache.org/tomahawk"
| template="vorlage-grundgeruest.xhtml">
| .
| .
| .
|
| <t:dataTable var="zeile" value="#{liste.eintraege}"
| rendered="#{liste.eintraege.rowCount > 0}"
styleClass="table">
|
| <ui:insert name="content" />
|
| <t:column styleClass="breite16">
| <h:commandLink action="#{editor.bearbeiten}"> <!-- this call
AbstractEditor.bearbeiten() neu= true -->
| <f:param name="id" value="#{zeile.id}" />
| <h:graphicImage value="/img/edit.gif" />
| </h:commandLink>
| </t:column>
|
| </t:dataTable>
c)
Template
vorlage-editor.xhtml -> Exception getting value of property neu of base of typ
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
| <ui:composition
xmlns="http://www.w3.org/1999/xhtml"
|
xmlns:ui="http://java.sun.com/jsf/facelets"
|
xmlns:h="http://java.sun.com/jsf/html"
|
xmlns:f="http://java.sun.com/jsf/core"
|
xmlns:s="http://jboss.com/products/seam/taglib"
|
xmlns:t="http://myfaces.apache.org/tomahawk"
| template="vorlage-grundgeruest.xhtml">
|
| <!-- Hauptteil -->
|
| <ui:define name="hauptteil">
|
| <div class="section">
| <h1>
| #{ueberschrift}
| <i><h:outputText value="#{editor.entity}"
rendered="#{!editor.neu}" /></i> <!-- Exception getting value of
property neu of base of type...-->
| <h:outputText value="neu anlegen" rendered="#{editor.neu}"
/>
| </h1>
| </div>
d)
messmitteltypEditor.xhtml
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
| <ui:composition
xmlns="http://www.w3.org/1999/xhtml"
|
xmlns:ui="http://java.sun.com/jsf/facelets"
|
xmlns:h="http://java.sun.com/jsf/html"
|
xmlns:f="http://java.sun.com/jsf/core"
|
xmlns:s="http://jboss.com/products/seam/taglib"
|
xmlns:t="http://myfaces.apache.org/tomahawk"
|
xmlns:a4j="https://ajax4jsf.dev.java.net/ajax"
|
xmlns:sandbox="http://myfaces.apache.org/sandbox"
| template="vorlage-editor.xhtml">
|
| <!-- content -->
|
| <ui:param name="ueberschrift" value="Messmitteltyp" />
| <ui:param name="editor" value="#{messmitteltypEditor}" />
| <ui:param name="login" value="true" />
|
| ...
| <ui:define name="content">
| ...
|
at last the stack trace:
09:33:39,577 ERROR [D2DFaceletViewHandler] Problem in renderResponse:
/vorlage-editor.xhtml @17,75 rendered="#{!editor.neu}": Exception getting value
of property neu of base of type :
de.bosch.ccecp.mmd.action.MessmitteltypEditor$$EnhancerByCGLIB$$8423db5e
| javax.faces.el.EvaluationException: /vorlage-editor.xhtml @17,75
rendered="#{!editor.neu}": Exception getting value of property neu of base of
type : de.bosch.ccecp.mmd.action.MessmitteltypEditor$$EnhancerByCGLIB$$8423db5e
| at com.sun.facelets.el.LegacyValueBinding.getValue(LegacyValueBinding.java:60)
| at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:1075)
| at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:508)
| at
com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:528)
| at
com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:535)
| at
com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:535)
| at
com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:535)
| at
com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:535)
| at
com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:535)
| at
com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:535)
| at
com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:535)
| at
com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:535)
| at
com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:535)
| at
com.icesoft.faces.facelets.D2DFaceletViewHandler.renderResponse(D2DFaceletViewHandler.java:273)
| at com.icesoft.faces.application.D2DViewHandler.renderView(D2DViewHandler.java:149)
| at org.ajax4jsf.framework.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:101)
| at org.ajax4jsf.framework.ajax.AjaxViewHandler.renderView(AjaxViewHandler.java:250)
| at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:384)
| at
com.icesoft.faces.webapp.xmlhttp.PersistentFacesServlet.service(PersistentFacesServlet.java:394)
| at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
| at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
| at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| at org.jboss.seam.servlet.SeamExceptionFilter.doFilter(SeamExceptionFilter.java:46)
| at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
| at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| at
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
| at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
| at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
| at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
| at
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
| at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524)
| at
org.jboss.web.tomcat.security.HttpServletRequestResponseValve.invoke(HttpServletRequestResponseValve.java:70)
| at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
| at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
| at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
| at
org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
| at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
| at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
| at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
| at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
| at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
| at
org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
| at java.lang.Thread.run(Thread.java:619)
| Caused by: javax.faces.el.EvaluationException: Bean:
de.bosch.ccecp.mmd.action.MessmitteltypEditor$$EnhancerByCGLIB$$8423db5e, property: neu
| at
org.apache.myfaces.el.PropertyResolverImpl.getProperty(PropertyResolverImpl.java:442)
| at org.apache.myfaces.el.PropertyResolverImpl.getValue(PropertyResolverImpl.java:82)
| at
com.sun.facelets.el.LegacyELContext$LegacyELResolver.getValue(LegacyELContext.java:141)
| at com.sun.el.parser.AstValue.getValue(AstValue.java:117)
| at com.sun.el.parser.AstNot.getValue(AstNot.java:46)
| at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:192)
| at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71)
| at com.sun.facelets.el.LegacyValueBinding.getValue(LegacyValueBinding.java:56)
| ... 43 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:438)
| ... 50 more
| Caused by: java.lang.NullPointerException
| at
org.jboss.seam.util.Parameters.convertMultiValueRequestParameter(Parameters.java:48)
| at org.jboss.seam.Component.injectParameters(Component.java:1151)
| at org.jboss.seam.Component.inject(Component.java:1114)
| at
org.jboss.seam.interceptors.BijectionInterceptor.bijectTargetComponent(BijectionInterceptor.java:48)
| at sun.reflect.GeneratedMethodAccessor401.invoke(Unknown Source)
| at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:597)
| at org.jboss.seam.util.Reflections.invoke(Reflections.java:18)
| at org.jboss.seam.intercept.Interceptor.aroundInvoke(Interceptor.java:169)
| at
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:64)
| at
org.jboss.seam.interceptors.ManagedEntityIdentityInterceptor.aroundInvoke(ManagedEntityIdentityInterceptor.java:39)
| 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.jboss.seam.util.Reflections.invoke(Reflections.java:18)
| at org.jboss.seam.intercept.Interceptor.aroundInvoke(Interceptor.java:169)
| at
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:64)
| at
org.jboss.seam.interceptors.OutcomeInterceptor.interceptOutcome(OutcomeInterceptor.java:23)
| at sun.reflect.GeneratedMethodAccessor399.invoke(Unknown Source)
| at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:597)
| at org.jboss.seam.util.Reflections.invoke(Reflections.java:18)
| at org.jboss.seam.intercept.Interceptor.aroundInvoke(Interceptor.java:169)
| at
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:64)
| at
org.jboss.seam.interceptors.ConversationInterceptor.endOrBeginLongRunningConversation(ConversationInterceptor.java:51)
| at sun.reflect.GeneratedMethodAccessor398.invoke(Unknown Source)
| at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:597)
| at org.jboss.seam.util.Reflections.invoke(Reflections.java:18)
| at org.jboss.seam.intercept.Interceptor.aroundInvoke(Interceptor.java:169)
| at
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:64)
| at
org.jboss.seam.intercept.RootInterceptor.createSeamInvocationContext(RootInterceptor.java:144)
| at
org.jboss.seam.intercept.RootInterceptor.invokeInContexts(RootInterceptor.java:129)
| at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:102)
| at
org.jboss.seam.intercept.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:49)
| at sun.reflect.GeneratedMethodAccessor397.invoke(Unknown Source)
| at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:597)
| at
org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:118)
| at
org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at
org.jboss.ejb3.entity.ExtendedPersistenceContextPropagationInterceptor.invoke(ExtendedPersistenceContextPropagationInterceptor.java:57)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at
org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at
org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:46)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at org.jboss.aspects.tx.TxPolicy.invokeInNoTx(TxPolicy.java:66)
| at org.jboss.aspects.tx.TxInterceptor$NotSupported.invoke(TxInterceptor.java:102)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at
org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at
org.jboss.ejb3.stateful.StatefulInstanceInterceptor.invoke(StatefulInstanceInterceptor.java:83)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at
org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77)
| at
org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:102)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at
org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at
org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at org.jboss.ejb3.stateful.StatefulContainer.localInvoke(StatefulContainer.java:203)
| at org.jboss.ejb3.stateful.StatefulLocalProxy.invoke(StatefulLocalProxy.java:98)
| at $Proxy487.getNeu(Unknown Source)
| at
de.beffo.seam.helper.AbstractEditor$$FastClassByCGLIB$$d100690e.invoke(<generated>)
| at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
| at
org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:45)
| at
org.jboss.seam.intercept.ClientSideInterceptor$1.proceed(ClientSideInterceptor.java:73)
| at
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:55)
| at
org.jboss.seam.interceptors.RemoveInterceptor.removeIfNecessary(RemoveInterceptor.java:39)
| at sun.reflect.GeneratedMethodAccessor396.invoke(Unknown Source)
| at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:597)
| at org.jboss.seam.util.Reflections.invoke(Reflections.java:18)
| at org.jboss.seam.intercept.Interceptor.aroundInvoke(Interceptor.java:169)
| at
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:64)
| at
org.jboss.seam.interceptors.ExceptionInterceptor.handleExceptions(ExceptionInterceptor.java:38)
| at sun.reflect.GeneratedMethodAccessor395.invoke(Unknown Source)
| at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:597)
| at org.jboss.seam.util.Reflections.invoke(Reflections.java:18)
| at org.jboss.seam.intercept.Interceptor.aroundInvoke(Interceptor.java:169)
| at
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:64)
| at
org.jboss.seam.intercept.RootInterceptor.createSeamInvocationContext(RootInterceptor.java:144)
| at
org.jboss.seam.intercept.RootInterceptor.invokeInContexts(RootInterceptor.java:129)
| at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:102)
| at
org.jboss.seam.intercept.ClientSideInterceptor.interceptInvocation(ClientSideInterceptor.java:82)
| at
org.jboss.seam.intercept.ClientSideInterceptor.intercept(ClientSideInterceptor.java:51)
| at
de.bosch.ccecp.mmd.action.MessmitteltypEditor$$EnhancerByCGLIB$$8423db5e.getNeu(<generated>)
| ... 55 more
|
Here the steps when I debug this app
1. current page: messketteListe.xhtml - click: bearbeiten
2. methode invoked: AbstractEditor.bearbeiten() -> set property neu=true ->
outcome:"editor"
3. from outcome:"editor" -> messmitteltypEditor.xhtml
4. BANG. java.lang.NullPointerException (Exception getting value of property neu of base
of type
So whats going wrong here? Without ICEFaces the app working perfectly. In ICEFaces Forum
they gave no advice.
Thanks
Andreas Franke
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3999359#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...