0 Replies Latest reply on Apr 10, 2007 6:59 AM by Philipp Taprogge

    Action not invoked - config error?

    Philipp Taprogge Newbie

      Hello all!

      I am currently working on a project that has been dorment for a while. It uses JBoss Seam with JBoss Portal through the MyFacesGenericPortlet.

      A have updated Seam to 1.2.1 now and added a new component to test the s:fileUpload functionality.

      My problem is now that the action declared in my jsp's commandButton is never invoked when I click it. The server just redisplays the portal page. No error message is given.
      The component itself is found when the application deploys, that was ther first thing I checked.
      This obviously has to be an error on my part, but somehow, it eludes me.
      Perhaps anyone of you has some insights?

      My jsp looks like this:

      <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
      <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
      <%@ taglib uri="http://jboss.com/products/seam/taglib" prefix="s"%>
       <h:form enctype="multipart/form-data">
       <s:fileUpload data="thedatafield"/>
       <h:messages style="color:red"/>
       <h:commandButton type="submit" value="upload" action="#{UploadAction.load}" styleClass="portlet-form-button" />

      and my component like this (I'll omit the local interface and omit imports... nothing fancy in there):

      public class UploadActionBean implements UploadAction {
       private static Logger logger = Logger.getLogger(UploadActionBean.class);
       @PersistenceContext(type = EXTENDED)
       private EntityManager em;
       @In(create = true)
       @Out(required = false)
       private byte[] thedatafield;
       @In(create = true)
       private transient ResourceBundle resourceBundle;
       private transient FacesContext facesContext;
       public String load() {
       System.out.println("in load()");
       if (thedatafield != null) {
       else {
       logger.info("thedatafield is null");
       return Outcome.REDISPLAY;
       public void setThedatafield(byte[] field) {
       this.thedatafield = field;
       public byte[] getThedatafield() {
       return this.thedatafield;
       public void destroy() {
       // nothing to clean up here

      Thanks in advance for any ideas you guys might have.

      Best regards,