I've been hanging around for almost two weeks just to make <s:fileUpload> 
working.
Simply want to add upload file capability to seam-registration. I'm using 
seam-space
sample as reference and adapt it into stateless version. Not refering to wiki's
samples cause it using tomahawk, I just want to have it plain and simple.

Environment used :
- JBoss AS 4.0.5.GA
- JBoss Seam 1.2.0.Patch1
- JBoss IDE for Eclipse
- default JBoss Seam (upload) jars - no tomahawk.jar, no icefaces, no 
commons-upload.
- jboss-seam-ui.jar included

components.xml :

<?xml version="1.0" encoding="UTF-8"?>
  | <components xmlns="http://jboss.com/products/seam/components";
  |             xmlns:core="http://jboss.com/products/seam/core";
  |             xmlns:web="http://jboss.com/products/seam/web";
  |             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
  |             xsi:schemaLocation=
  |                 "http://jboss.com/products/seam/core 
http://jboss.com/products/seam/core-1.2.xsd 
  |                  http://jboss.com/products/seam/web 
http://jboss.com/products/seam/web-1.2.xsd 
  |                  http://jboss.com/products/seam/components 
http://jboss.com/products/seam/components-1.2.xsd";>
  | 
  |     <core:init jndi-pattern="@jndiPattern@"/>
  |     <core:ejb installed="@embeddedEjb@"/>
  | 
  |     <web:multipart-filter create-temp-files="true" 
  |                           max-request-size="1000000" 
  |                           url-pattern="*.seam"/>
  |     
  | </components>


web.xml :

<?xml version="1.0" encoding="UTF-8"?>
  | 
  | <web-app version="2.5"
  |     xmlns="http://java.sun.com/xml/ns/javaee";
  |     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
  |     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd";>
  | 
  |     <!-- Seam -->
  |     
  |     <listener>
  |         <listener-class>org.jboss.seam.servlet.SeamListener</listener-class>
  |     </listener>
  |     
  |     <filter>
  |             <filter-name>Seam Filter</filter-name>
  |             <filter-class>org.jboss.seam.web.SeamFilter</filter-class>
  |     </filter>
  |     
  |     <filter-mapping>
  |             <filter-name>Seam Filter</filter-name>
  |             <url-pattern>/*</url-pattern>
  |     </filter-mapping>
  |     
  |     <!-- MyFaces -->
  |     
  |     <listener>
  |         
<listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
  |     </listener>
  |     
  |     <context-param>
  |         <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
  |         <param-value>client</param-value>
  |     </context-param>
  | 
  |     <context-param>
  |         <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
  |         <param-value>.jspx</param-value>
  |     </context-param>
  |   
  |     <servlet>
  |         <servlet-name>Faces Servlet</servlet-name>
  |         <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
  |         <load-on-startup>1</load-on-startup>
  |     </servlet>
  | 
  |     <!-- Faces Servlet Mapping -->
  |     <servlet-mapping>
  |         <servlet-name>Faces Servlet</servlet-name>
  |         <url-pattern>*.seam</url-pattern>
  |     </servlet-mapping>
  | </web-app>


application.xml :

<?xml version="1.0" encoding="UTF-8"?>
  | <application xmlns="http://java.sun.com/xml/ns/javaee"; 
  |              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
  |              xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/application_5.xsd";
  |              version="5">
  |              
  |     <display-name>Myapp</display-name>
  | 
  |     <module>
  |             <web>
  |                     <web-uri>seam-myapp.war</web-uri>
  |                     <context-root>/myapp</context-root>
  |             </web>
  |     </module>
  |     <module>
  |             <ejb>seam-myapp.jar</ejb>
  |     </module>
  |     <module>
  |         <java>jboss-seam.jar</java>
  |     </module>
  |          <module>
  |                   <java>el-api.jar</java>
  |          </module>
  |          <module>
  |                   <java>el-ri.jar</java>
  |          </module>
  | 
  | </application>


jboss-app.xml :

<jboss-app>
  |       <loader-repository> 
  |       seam.jboss.org:loader=myapp
  |       </loader-repository> 
  | </jboss-app>


the view .................

index.jspx :

<?xml version="1.0"?>
  | <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"; 
  |           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="http://www.w3.org/1999/xhtml";
  |           version="2.0">
  | <jsp:output doctype-root-element="html"
  |             doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
  |             
doctype-system="http://www.w3c.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
  | <jsp:directive.page contentType="text/html"/>
  | <html>
  | <body>
  | <f:view>
  | <h:form enctype="multipart/form-data">
  |    <table width="100%" border="0" cellspacing="0" cellpadding="0">
  |       <tr>
  |          <td>Upload Tasks</td>
  |       </tr>
  |       <tr>
  |          <td width="100%"><br/>File to upload: 
  |             <s:fileUpload data="#{admin.uploadedFile}"/>
  |          </td>
  |       </tr>
  |       <tr>
  |          <td>
  |             <h:commandButton value="Submit" action="#{admin.parse}"/>
  |          </td>
  |       </tr>
  |    </table>
  | </h:form>
  | </f:view>
  | </body>
  | </html>
  | </jsp:root>


and the code ..................

Admin.java :

package myapp;
  | 
  | import javax.ejb.Stateless;
  | import org.jboss.seam.annotations.Name;
  | 
  | @Stateless
  | @Name("admin")
  | public class Admin implements AdminI {
  |     private byte[] uploadedFile;
  |     
  |     public void setUploadedFile(byte[] uploadedFile)
  |     {
  |             this.uploadedFile = uploadedFile;
  |     }
  |     
  |     public byte[] getUploadedFile()
  |     {
  |             return uploadedFile;
  |     }
  |     
  |     public void parse() throws Exception {
  |             if(uploadedFile != null)
  |                     System.out.println("size = " + uploadedFile.length);
  |             else
  |                     System.out.println("uploadedFile is null");
  |     }
  | }


AdminI.java :

package myapp;
  | 
  | import javax.ejb.Local;
  | 
  | @Local
  | public interface AdminI {
  |     public void parse() throws Exception;
  |     public byte[] getUploadedFile();
  |     public void setUploadedFile(byte[] uploadedFile);
  | }


No error, but it always print "uploadedFile is null". What requirements I might 
missed?
Any help will be appreciated.

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4038799#4038799

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4038799
_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to