error: binding="#{customerAction.outputPanel}": javax.ejb.EJ
bibou May 28, 2008 3:24 AMHi every body,
I have a problem since few days and I need someone to help me.
I have implemented a .xhtml file that contains an outpuPanel and a HtmlPanelMenu. the outputPanel is binded to a htmlA4joutpuPanel property in my backingBean.
when I execute the application, I got no error, But when I click to one panelMenuItem, which update it with the action attribute, I got an error coming from the binding attribute of the outpuPanel tag (see error below). the methods in my backingBean works well I have test them.
I have deleted what updateOutputputPanel() contains and the error still the same.
here is the .xhtml page
<h:form id="customerForm">
<h:panelGrid columns="2" columnClasses="cols" width="100%" border="1" cellspacing="0">
<rich:panelMenu style="width:200px" mode="server"
iconExpandedGroup="disc" iconCollapsedGroup="disc"
iconExpandedTopGroup="chevronUp" iconGroupTopPosition="right"
iconCollapsedTopGroup="chevronDown" iconCollapsedTopPosition="right" >
<rich:panelMenuGroup label="Products">
<c:forEach items="#{customerAction.searchOrderLine()}" var="prod" varStatus="s">
<!-- le panelMenuitem updatele outputPanel par la fonction upadateOutputPanel() et fait un listener qui marche bien-->
<rich:panelMenuItem label="#{prod.name}" actionListener="#{customerAction.searchServiceProduct}"
action="#{customerAction.updateOutputPanel()}">
<f:param id="id#{s.index}" name="productId" value="#{prod.productId}"/>
</rich:panelMenuItem>
</c:forEach>
</rich:panelMenuGroup>
</rich:panelMenu>
<a4j:outputPanel id="outputPanel" rendered="true" binding= "#{customerAction.outputPanel}">
</a4j:outputPanel>
</h:panelGrid>
</h:form>
and here is my backing bean
@Stateful
@Scope(ScopeType.SESSION)
@Name("customerAction")
public class CustomerActionBean implements CustomerActionLocal {
private HtmlAjaxOutputPanel outputPanel = new HtmlAjaxOutputPanel();
public void updateOutputPanel() {
HtmlDataTable dataTable = new HtmlDataTable();
HtmlColumn columnName, columnAmount;
dataTable.setValue("#{characteristicServiceProduct}");
dataTable.setVar("chSePr");
columnName = new HtmlColumn();
HtmlOutputText outputTextName = new HtmlOutputText();
outputTextName.setValue("#{chSePr.characteristic.name}");
log.info("name =#0",outputTextName.getValue() );
columnName.getChildren().add(outputTextName);
columnAmount = new HtmlColumn();
HtmlOutputText outputTextAmount = new HtmlOutputText();
outputTextAmount.setValue("#{chSePr.amount}");
log.info("amount =#0",outputTextAmount.getValue() );
columnAmount.getChildren().add(outputTextAmount);
dataTable.getChildren().add(columnName);
dataTable.getChildren().add(columnAmount);
getOutputPanel().getChildren().add(dataTable);
getOutputPanel().setRendered(false);
outputPanel.saveState(FacesContext.getCurrentInstance());
}the error is as follow
javax.ejb.EJBException
at com.sun.ejb.containers.BaseContainer.processSystemException(BaseContainer.java:3869)
at com.sun.ejb.containers.BaseContainer.completeNewTx(BaseContainer.java:3769)
at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:3571)
.....
Caused by: org.jboss.seam.RequiredException: @In attribute requires non-null value: customerAction.em
at org.jboss.seam.Component.getValueToInject(Component.java:2168)
at org.jboss.seam.Component.injectAttributes(Component.java:1598)
at org.jboss.seam.Component.inject(Component.java:1416)
javax.el.ELException: /pages/users/Customer.xhtml @69,116 binding="#{customerAction.outputPanel}": javax.ejb.EJBException
at com.sun.facelets.el.TagValueExpression.setValue(TagValueExpression.java:101)
....
Caused by: javax.ejb.EJBException
at com.sun.ejb.containers.BaseContainer.processSystemException(BaseContainer.java:3869)
at com.sun.ejb.containers.BaseContainer.completeNewTx(BaseContainer.java:3769)
thanks a lot
regards
bibou