Foren
Try to use JSF composite component inside portlet
stephen zambaux, geändert vor 9 Jahren.
Try to use JSF composite component inside portlet
Junior Member Beiträge: 63 Beitrittsdatum: 03.10.14 Neueste Beiträge
HI, I try to use JSF composite component inside my jsf Portlet and I have this error:
my component yesNoInput.xhtml:
in my view:
java.lang.NullPointerException: Erreur d’argument : le paramètre «url» est null.
at com.sun.faces.util.Util.notNull(Util.java:303)
at com.sun.faces.facelets.impl.DefaultFaceletCache.isFaceletCached(DefaultFaceletCache.java:126)
at com.sun.faces.facelets.impl.DefaultFaceletFactory.needsToBeRefreshed(DefaultFaceletFactory.java:278)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.getComponentMetadata(FaceletViewHandlingStrategy.java:229)
at com.sun.faces.application.ApplicationImpl.createComponent(ApplicationImpl.java:937)
at javax.faces.application.ApplicationWrapper.createComponent(ApplicationWrapper.java:605)
at org.jboss.weld.environment.servlet.jsf.ForwardingApplication.createComponent(ForwardingApplication.java:103)
at com.sun.faces.facelets.tag.jsf.CompositeComponentTagHandler.createComponent(CompositeComponentTagHandler.java:162)
at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.createComponent(ComponentTagHandlerDelegateImpl.java:494)
at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:169)
at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95)
at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:187)
at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95)
at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:187)
at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95)
at com.sun.faces.facelets.tag.jsf.core.ViewHandler.apply(ViewHandler.java:188)
at com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:93)
at com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:87)
at com.sun.faces.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:164)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.buildView(FaceletViewHandlingStrategy.java:906)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:99)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at com.liferay.faces.bridge.BridgePhaseRenderImpl.execute(BridgePhaseRenderImpl.java:227)
at com.liferay.faces.bridge.BridgePhaseRenderImpl.execute(BridgePhaseRenderImpl.java:85)
at com.liferay.faces.bridge.BridgeImpl.doFacesRequest(BridgeImpl.java:112)
at javax.portlet.faces.GenericFacesPortlet.doView(GenericFacesPortlet.java:255)
at javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:328)
at javax.portlet.faces.GenericFacesPortlet.doDispatch(GenericFacesPortlet.java:204)
at javax.portlet.GenericPortlet.render(GenericPortlet.java:233)
at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:103)
at com.liferay.portlet.ScriptDataPortletFilter.doFilter(ScriptDataPortletFilter.java:55)
at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:100)
at com.liferay.cdi.portlet.bridge.CDIPortletFilter.doFilter(CDIPortletFilter.java:96)
at sun.reflect.GeneratedMethodAccessor453.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at com.liferay.portal.kernel.bean.ClassLoaderBeanHandler.invoke(ClassLoaderBeanHandler.java:67)
at com.sun.proxy.$Proxy516.doFilter(Unknown Source)
at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:100)
at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:64)
at com.liferay.portal.kernel.servlet.PortletServlet.service(PortletServlet.java:112)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
at org.jboss.weld.servlet.WeldCrossContextFilter.doFilter(WeldCrossContextFilter.java:62)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
at com.liferay.cdi.portlet.bridge.CDICrossContextFilter.doFilter(CDICrossContextFilter.java:49)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:748)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:604)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:543)
at com.liferay.portlet.InvokerPortletImpl.invoke(InvokerPortletImpl.java:604)
at com.liferay.portlet.InvokerPortletImpl.invokeRender(InvokerPortletImpl.java:677)
at com.liferay.portlet.InvokerPortletImpl.render(InvokerPortletImpl.java:379)
at org.apache.jsp.html.portal.render_005fportlet_jsp._jspService(render_005fportlet_jsp.java:1230)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at com.liferay.portal.servlet.DirectRequestDispatcher.include(DirectRequestDispatcher.java:57)
at com.liferay.portal.servlet.ClassLoaderRequestDispatcherWrapper.doDispatch(ClassLoaderRequestDispatcherWrapper.java:78)
at com.liferay.portal.servlet.ClassLoaderRequestDispatcherWrapper.include(ClassLoaderRequestDispatcherWrapper.java:53)
at com.liferay.portlet.PortletContainerImpl._doRender(PortletContainerImpl.java:655)
at com.liferay.portlet.PortletContainerImpl.render(PortletContainerImpl.java:138)
at com.liferay.portlet.SecurityPortletContainerWrapper.render(SecurityPortletContainerWrapper.java:141)
at com.liferay.portlet.RestrictPortletContainerWrapper.render(RestrictPortletContainerWrapper.java:126)
at com.liferay.portal.kernel.portlet.PortletContainerUtil.render(PortletContainerUtil.java:156)
at com.liferay.portal.layoutconfiguration.util.PortletRenderer._render(PortletRenderer.java:120)
at com.liferay.portal.layoutconfiguration.util.PortletRenderer.access$4(PortletRenderer.java:107)
at com.liferay.portal.layoutconfiguration.util.PortletRenderer$PortletRendererCallable.doCall(PortletRenderer.java:174)
at com.liferay.portal.layoutconfiguration.util.PortletRenderer$PortletRendererCallable.doCall(PortletRenderer.java:1)
at com.liferay.portal.kernel.executor.CopyThreadLocalCallable.call(CopyThreadLocalCallable.java:69)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at com.liferay.portal.kernel.concurrent.ThreadPoolExecutor$WorkerTask._runTask(ThreadPoolExecutor.java:682)
at com.liferay.portal.kernel.concurrent.ThreadPoolExecutor$WorkerTask.run(ThreadPoolExecutor.java:593)
at java.lang.Thread.run(Thread.java:745)
my component yesNoInput.xhtml:
<!--?xml version="1.0" encoding="UTF-8"?-->
<composite:interface>
<composite:attribute name="id" />
<composite:attribute name="value" />
<composite:attribute name="update" />
<composite:attribute name="styleClass" />
<composite:attribute name="action" method-signature="java.lang.Void listener())" />
</composite:interface>
<composite:implementation>
<p:selectoneradio value="#{cc.attrs.value}" styleclass="#{cc.attrs.styleClass}" style="padding:5px">
<f:selectitem id="#{cc.attrs.id}_yes" itemValue="#{true}" itemLabel="#{msg['oui']}" />
<f:selectitem id="#{cc.attrs.id}_no" itemValue="#{false}" itemLabel="#{msg['non']}" />
<p:ajax update="#{cc.attrs.update}" listener="#{cc.attrs.action}"></p:ajax>
</p:selectoneradio>
</composite:implementation>
in my view:
<f:view xmlns="http://www.w3.org/1999/xhtml" xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:p="http://primefaces.org/ui" xmlns:it="http://java.sun.com/jsf/composite/component">
<it:yesnoinput id="haveAttachement" styleClass="haveAttachement" value="#{uploadInvoiceController.haveAttachment}" />
</f:view>
David H Nebinger, geändert vor 9 Jahren.
RE: Try to use JSF composite component inside portlet
Liferay Legend Beiträge: 14919 Beitrittsdatum: 02.09.06 Neueste Beiträge
Looks like you're missing a url attribute which is why you're getting the null failure on it.
stephen zambaux, geändert vor 9 Jahren.
RE: Try to use JSF composite component inside portlet
Junior Member Beiträge: 63 Beitrittsdatum: 03.10.14 Neueste Beiträge
when I use these components in jboss7 without liferay I don't have any url missing problem
David H Nebinger, geändert vor 9 Jahren.
RE: Try to use JSF composite component inside portlet
Liferay Legend Beiträge: 14919 Beitrittsdatum: 02.09.06 Neueste Beiträge
All that says to me is that within a servlet world the components have different requirements than in the portlet world.
Neil Griffin, geändert vor 9 Jahren.
RE: Try to use JSF composite component inside portlet
Liferay Legend Beiträge: 2655 Beitrittsdatum: 27.07.05 Neueste Beiträge
The following line in the stacktrace indicates that weld-servlet.jar might be in your WEB-INF/lib folder of your deployed portlet WAR:
at org.jboss.weld.environment.servlet.jsf.ForwardingApplication.createComponent(ForwardingApplication.java:103)
If that is the case then please remove the weld-servlet.jar dependency since it is not necessary in JBoss AS7.
at org.jboss.weld.environment.servlet.jsf.ForwardingApplication.createComponent(ForwardingApplication.java:103)
If that is the case then please remove the weld-servlet.jar dependency since it is not necessary in JBoss AS7.
stephen zambaux, geändert vor 9 Jahren.
RE: Try to use JSF composite component inside portlet
Junior Member Beiträge: 63 Beitrittsdatum: 03.10.14 Neueste Beiträge
Sorry, I use Tomcat7, i was just saying that my components comes from a jboss7 servlet project
Neil Griffin, geändert vor 9 Jahren.
RE: Try to use JSF composite component inside portlet
Liferay Legend Beiträge: 2655 Beitrittsdatum: 27.07.05 Neueste Beiträge
Hi Stephen,
When you get a chance, please try downloading the Liferay 6.2 version of the jsf2-cdi-portlet demo WAR and let us know if it works in your environment.
Thanks,
Neil
When you get a chance, please try downloading the Liferay 6.2 version of the jsf2-cdi-portlet demo WAR and let us know if it works in your environment.
Thanks,
Neil
stephen zambaux, geändert vor 9 Jahren.
RE: Try to use JSF composite component inside portlet
Junior Member Beiträge: 63 Beitrittsdatum: 03.10.14 Neueste Beiträge
Hi Neil, it's ok with your WAR, I think you don't use composite component inside, do you?
Neil Griffin, geändert vor 9 Jahren.
RE: Try to use JSF composite component inside portlet
Liferay Legend Beiträge: 2655 Beitrittsdatum: 27.07.05 Neueste Beiträge
Hi Stephen,
I'm glad to hear that the jsf2-cdi-portlet demo WAR worked in your environment. It does indeed feature three composite components.
Kind Regards,
Neil
I'm glad to hear that the jsf2-cdi-portlet demo WAR worked in your environment. It does indeed feature three composite components.
Kind Regards,
Neil
stephen zambaux, geändert vor 9 Jahren.
RE: Try to use JSF composite component inside portlet
Junior Member Beiträge: 63 Beitrittsdatum: 03.10.14 Neueste Beiträge
Hi Neil, by comparing WARs, I found structures differences, I have now the same structure and it's ok, thank you for alll, it's works well.
Regards
Regards
Neil Griffin, geändert vor 9 Jahren.
RE: Try to use JSF composite component inside portlet
Liferay Legend Beiträge: 2655 Beitrittsdatum: 27.07.05 Neueste Beiträge
Hi Stephen,
I'm glad to hear that it is working for you now. Thanks for using Liferay Faces
Neil
I'm glad to hear that it is working for you now. Thanks for using Liferay Faces
Neil