"robinemig" wrote : Any chance this can be added to one of the demos? I'm still 
have problems getting it to work correctly.

hi robinemig,

I am facing the same prbolem of "javax.faces.el.EvaluationException: Cannot set 
value for expression '#{resultRow.uploadedFile}' to a new value of type 
org.apache.myfaces.custom.
fileupload.UploadedFileDefaultFileImpl" . I have a datatable within which I 
have the inputFileUpload & the value is binded with the DTO object. Here is my 
code. Any help is greatly Appreciated. Need this to be done asap.

 
  | JSF
  | 
  | <%@ taglib uri = "http://java.sun.com/jsf/html"; prefix="h"%>
  | <%@ taglib uri = "http://java.sun.com/jsf/core"; prefix="f"%>
  | <%@ taglib uri = "http://myfaces.apache.org/tomahawk"; prefix = "t"%>
  | 
  | <f:view>
  |     <f:verbatim>
  |             <html>
  |         <head>
  |               <title>Mailing Upload</title>
  |               <link rel="stylesheet" type="text/css" 
href="<%=request.getContextPath()%>/styleSheet/PzStyles.css">
  |                   <script type="text/javascript" 
src="<%=request.getContextPath()%>/script/PzUtil.js"></script>
  |               <script type="text/javascript">
  |                     function trim(field){
  |                             field.value = Trim(field.value).toUpperCase();
  |                     }               
  |                     
  |                     function validateAndSetCounter(){
  |                             var retValue = true;
  |                                     var elements = 
document.getElementsByTagName("input");
  |                                     for(i=0;i<elements.length;i++){
  |                                             if(elements.type=="file" && 
elements.id.indexOf("pdfFile")>=0 && elements.value.length<=0){
  |                                                     alert("Select a PDF 
file to Print");
  |                                                     elements.focus();
  |                                                     retValue = false;
  |                                                     break;
  |                                             }
  |                                             else if(elements.type=="file" 
&& elements.id.indexOf("pdfFile")>=0 && elements.value.length>0 && 
elements.value.indexOf(".pdf")<0){
  |                                                     alert("Invalid PDF 
file");
  |                                                     retValue = false;
  |                                                     break;
  |                                             }                       
  |                                             else 
if(elements.id.indexOf("rowCount")>=0){
  |                                                     
document.getElementById("mailingUpload:pdfCounter").value = elements.value;
  |                                             }
  |                                     }                       
  |                                     return retValue;
  |                             }
  |               </script>
  |         </head>
  |         <body>
  |     </f:verbatim>
  |     
  |     <h:form id="mailingUpload" enctype="multipart/form-data">
  |             <h:panelGrid align="center" width="100%" 
columnClasses="c6Middle">      
  |                     <h:outputText styleClass="c7" value="Mailing 
Interface"/>                       
  |             </h:panelGrid>
  |             <f:verbatim>                    
  |                 <fieldset class="c19" align="center">
  |             <legend style="c6">Mailing Upload</legend>                      
                                
  |             </f:verbatim>
  |             <h:messages layout="table" globalOnly="true" styleClass="c3r" 
showSummary="false" showDetail="true"/>
  |             <h:panelGrid border="0" align="center" columns="2" width="100%" 
columnClasses="c6rt25, c6lt25">                         
  |                     <h:outputText styleClass="c4r" value="* "/> 
  |                     <h:outputText value="Mandatory Fields"/>
  |                     
  |                     <h:outputText styleClass="c4r" value="** "/> 
  |                     <h:outputText value="Mandatory when Address Field is 
Selected"/>
  | 
  |                     <h:panelGroup>
  |                             <h:outputText styleClass="c4r" value="* "/> 
  |                     <h:outputText value="Description: "/>
  |                     </h:panelGroup>
  |                     <h:panelGroup>          
  |                             <h:inputText id="desc" styleClass="c12" 
value="#{MailingBacking.mailingDesc}" onchange="trim(this)" required="true">
  |                                     <f:attribute name="errMsg" 
value="Description"/>
  |                             </h:inputText>
  |                             <h:message for="desc" styleClass="c3r"/>
  |                     </h:panelGroup>                                         
                
  |                     
  |                     <h:panelGroup>
  |                             <h:outputText styleClass="c4r" value="* "/> 
  |                     <h:outputText value="Total Quantity: "/>
  |                     </h:panelGroup>
  |                     <h:panelGroup>          
  |                             <h:inputText id="totQty" styleClass="c12" 
value="#{MailingBacking.totalQty}" onchange="trim(this)" required="true">
  |                                     <f:attribute name="errMsg" value="Total 
Quantity"/>
  |                             </h:inputText>
  |                             <h:message for="totQty" styleClass="c3r"/>
  |                     </h:panelGroup> 
  |                     
  |                     <h:panelGroup>
  |                             <h:outputText styleClass="c4r" value="* "/> 
  |                     <h:outputText value="Item Type: "/>
  |                     </h:panelGroup>         
  |                     
  |                     <h:panelGroup>  
  |                             <h:selectOneMenu id="itemType" 
value="#{MailingBacking.itemTypeId}" styleClass="c12" required="true">
  |                   <f:selectItem itemValue="" itemLabel="--Select--"/>
  |                   <f:selectItems value="#{MailingBacking.itemTypeList}"/>
  |                   <f:attribute name="errMsg" value="Item Type"/>
  |                 </h:selectOneMenu>           
  |                 <h:message for="itemType" styleClass="c3r"/>
  |                     </h:panelGroup>                                         
  |                                             
  |                     <h:panelGroup>
  |                     <h:outputText value="Address File: "/>
  |                     </h:panelGroup>
  |                     <h:panelGroup>          
  |                             <t:inputFileUpload id="addressFile" 
styleClass="c12" value="#{MailingBacking.uploadedFile}" onchange="trim(this)" 
storage="file">
  |                                     <f:attribute name="errMsg" 
value="Address File"/>
  |                             </t:inputFileUpload>
  |                             <h:message for="addressFile" styleClass="c3r"/>
  |                     </h:panelGroup>                                         
  |                     
  |                     <h:panelGroup>
  |                             <h:outputText styleClass="c4r" value="** "/> 
  |                     <h:outputText value="Group Number: "/>
  |                     </h:panelGroup>
  |                     <h:panelGroup>          
  |                             <h:inputText id="groupRef" styleClass="c12" 
value="#{MailingBacking.groupRef}" onchange="trim(this)">
  |                                     <f:attribute name="errMsg" value="Group 
Number"/>
  |                             </h:inputText>
  |                             <h:message for="groupRef" styleClass="c3r"/>
  |                     </h:panelGroup> 
  |             </h:panelGrid>          
  |             <h:panelGrid align="center" columnClasses="c6Middle" 
width="100%">
  |                     <t:dataTable id="pdfFiles" 
value="#{MailingBacking.pdfFileList}" renderedIfEmpty="false"
  |                     headerClass="tableHeader" styleClass="tableStyle" 
align="center" var="resultRow" rowCountVar="rowCount">
  |                             <t:column>
  |                                     <f:facet name="header">
  |                                     <h:outputText styleClass="c3" value=" 
PDF Print File "/>
  |                             </f:facet>
  |                             <t:inputFileUpload storage="file" id="pdfFile" 
styleClass="c12" value="#{resultRow.uploadedFile}" onchange="trim(this)" 
required="true"/>
  |                             <h:inputHidden id="rowCount" 
value="#{rowCount}"/>
  |                             </t:column>                             
  |                     </t:dataTable>
  |                     <h:inputHidden id="pdfCounter" 
value="#{MailingBacking.pdfCounter}"/>
  |                     <h:commandButton id="addPdf" value="Add PDF Supplement" 
styleClass="c15" onclick="return validateAndSetCounter();" 
action="#{MailingBacking.addNewPdf}"/>
  |             </h:panelGrid>
  |     </h:form>       
  |     <f:verbatim>
  |             </body>
  |             </html>
  |     </f:verbatim>
  | </f:view>
  | 
  | BackingBean
  | 
  | package com.cci.pz.web.orderMgmt.mailing;
  | 
  | import java.sql.Timestamp;
  | import java.util.ArrayList;
  | import java.util.Enumeration;
  | 
  | import javax.faces.context.FacesContext;
  | import javax.faces.model.SelectItem;
  | import javax.naming.Context;
  | import javax.naming.InitialContext;
  | import javax.servlet.http.HttpServletRequest;
  | 
  | import org.apache.myfaces.custom.fileupload.UploadedFile;
  | 
  | import com.cci.pz.data.orderMgmt.mailing.PzMailingLineDTO;
  | import com.cci.pz.entity.catalogMgmt.PzItemTypes;
  | import com.cci.pz.session.catalogMgmt.PzItemTypeFacade;
  | import com.cci.pz.web.login.PzUserObject;
  | 
  | public class MailingBackingBean{
  |     
  |     private String addrFileNameIn;
  |     private Timestamp dueDate;
  |     private String groupRef;
  |     private String mailingDesc;
  |     private String fileNameIn;
  |     private Long itemTypeId;
  |     private Long totalQty;
  |     private Long lineQty;
  |     private Long pdfCounter = 0L;
  |     private ArrayList<PzMailingLineDTO> pdfFileList;
  |     private PzUserObject userSessionObj;    
  |     private UploadedFile uploadedFile;
  |     
  |     PzItemTypeFacade itemTypeFacade; 
  |     
  |     HttpServletRequest request = null;
  |     
  |     public MailingBackingBean()throws Exception{
  |             Context ctx = new InitialContext();
  |             itemTypeFacade = 
(PzItemTypeFacade)ctx.lookup(PzItemTypeFacade.class.getName());
  |             request = (HttpServletRequest) 
FacesContext.getCurrentInstance().getExternalContext().getRequest();
  |             Enumeration ee = request.getParameterNames();
  |             while(ee.hasMoreElements()){
  |                     String name = (String)ee.nextElement();
  |                     if(name.indexOf("rowCount")>=0){
  |                             String value = request.getParameter(name);
  |                             System.out.println(name+":"+value);
  |                             if(value!=null && value.length()>0){
  |                                     this.pdfCounter = 
Long.parseLong(value);                                        
  |                             }
  |                     }
  |             }       
  |             
  |     }
  |     
  |     public String getAddrFileNameIn() {
  |             return addrFileNameIn;
  |     }
  |     
  |     public void setAddrFileNameIn(String addrFileNameIn) {
  |             this.addrFileNameIn = addrFileNameIn;
  |     }
  |     
  |     
  |     public Timestamp getDueDate() {
  |             return dueDate;
  |     }
  |     
  |     public void setDueDate(Timestamp dueDate) {
  |             this.dueDate = dueDate;
  |     }
  |     
  |     public String getFileNameIn() {
  |             return fileNameIn;
  |     }
  |     
  |     public void setFileNameIn(String fileNameIn) {
  |             this.fileNameIn = fileNameIn;
  |     }
  |     
  |     public String getGroupRef() {
  |             return groupRef;
  |     }
  |     
  |     public void setGroupRef(String groupRef) {
  |             this.groupRef = groupRef;
  |     }
  |     
  |     public Long getItemTypeId() {
  |             return itemTypeId;
  |     }
  |     
  |     public void setItemTypeId(Long itemTypeId) {
  |             this.itemTypeId = itemTypeId;
  |     }
  |     
  |     public Long getLineQty() {
  |             return lineQty;
  |     }
  |     
  |     public void setLineQty(Long lineQty) {
  |             this.lineQty = lineQty;
  |     }
  |     
  |     public String getMailingDesc() {
  |             return mailingDesc;
  |     }
  |     
  |     public void setMailingDesc(String mailingDesc) {
  |             this.mailingDesc = mailingDesc;
  |     }
  |             
  |     public SelectItem[] getItemTypeList(){
  |             SelectItem[] selectItems = new SelectItem[]{};          
  |             ArrayList<PzItemTypes> itemTypeList = 
itemTypeFacade.getItemTypes(this.getUserSessionObj().getClientCode(),"A");
  |             if(itemTypeList!=null && itemTypeList.size()>0){                
  |                     selectItems = new SelectItem[itemTypeList.size()];
  |                     for(int i=0;i<itemTypeList.size();i++){
  |                             selectItems =  new 
SelectItem((itemTypeList.get(i)).getItemTypeId(),(itemTypeList.get(i)).getItemTypeDesc());
  |                     }                       
  |             }                               
  |             return selectItems;             
  |     }
  | 
  |     public PzUserObject getUserSessionObj() {
  |             return userSessionObj;
  |     }
  | 
  |     public void setUserSessionObj(PzUserObject userSessionObj) {
  |             this.userSessionObj = userSessionObj;
  |     }
  | 
  |     public Long getTotalQty() {
  |             return totalQty;
  |     }
  | 
  |     public void setTotalQty(Long totalQty) {
  |             this.totalQty = totalQty;
  |     }
  | 
  |     public ArrayList<PzMailingLineDTO> getPdfFileList() {
  |             System.out.println("inside getPdfFileList pdfFileCounter : 
"+this.pdfCounter);
  |             System.out.println("inside getPdfFileList pdfFileList : 
"+this.pdfFileList);
  |             if(this.pdfCounter!=null && this.pdfCounter.longValue()==0){
  |                     this.pdfFileList = new ArrayList<PzMailingLineDTO>();   
                
  |                     this.pdfFileList.add(new PzMailingLineDTO());           
                
  |             }
  |             else if(this.pdfFileList==null){
  |                     this.pdfFileList = new ArrayList<PzMailingLineDTO>();   
                
  |             }
  |             if(this.pdfFileList.size()<this.pdfCounter.intValue()){
  |                     int i =  this.pdfFileList.size();
  |                     for(;i<this.pdfCounter.intValue();i++){
  |                             this.pdfFileList.add(new PzMailingLineDTO());
  |                     }
  |             }
  |             System.out.println("PdfList Size frm getPdfFileList: 
"+this.pdfFileList.size());                
  |             return pdfFileList;
  |     }       
  |     
  |     public void addNewPdf(){
  |             System.out.println("inside addNewPdf");
  |             if(this.getPdfFileList()!=null){
  |                     System.out.println("PdfList Size: 
"+this.pdfFileList.size());
  |                     for(PzMailingLineDTO lineDTO:this.pdfFileList){
  |                             
System.out.println(lineDTO.getUploadedFile().getName()+":"+lineDTO.getUploadedFile().getContentType());
  |                     }
  |                     this.pdfFileList.add(new PzMailingLineDTO());           
        
  |             }
  |     }
  | 
  |     public void setPdfFileList(ArrayList<PzMailingLineDTO> pdfFileList) {
  |             this.pdfFileList = pdfFileList;
  |     }
  | 
  |     public Long getPdfCounter() {
  |             return pdfCounter;
  |     }
  | 
  |     public void setPdfCounter(Long pdfCounter) {
  |             this.pdfCounter = pdfCounter;
  |     }
  |     
  |     public void upload(){
  |             UploadedFile uploadedFile = this.getUploadedFile();
  |         String uploadedFileName = uploadedFile.getName();
  |         System.out.println("File Name : "+uploadedFileName);
  |     }
  | 
  |     public UploadedFile getUploadedFile() {
  |             return uploadedFile;
  |     }
  | 
  |     public void setUploadedFile(UploadedFile uploadedFile) {
  |             this.uploadedFile = uploadedFile;
  |     }
  | }
  | 
  | DTO
  | package com.cci.pz.data.orderMgmt.mailing;
  | 
  | 
  | import org.apache.myfaces.custom.fileupload.UploadedFile;
  | 
  | import com.cci.pz.data.util.GlobalDbDataHolder;
  | 
  | public class PzMailingLineDTO implements GlobalDbDataHolder {
  |     private String fileNameIn;
  | 
  |     private String fileNameProc;
  | 
  |     private String itemNum;
  | 
  |     private Long itemTypeId;
  | 
  |     private Long lineNumber;
  | 
  |     private Long lineQty;
  | 
  |     private Long mailingLineId;
  | 
  |     private Long pageCount;
  | 
  |     private Long mailingId;
  |     
  |     private UploadedFile uploadedFile;    
  | 
  |     public PzMailingLineDTO() {
  |     }
  | 
  |     public String getFileNameIn() {
  |         return fileNameIn;
  |     }
  | 
  |     public void setFileNameIn(String fileNameIn) {
  |         this.fileNameIn = fileNameIn;
  |     }
  | 
  |     public String getFileNameProc() {
  |         return fileNameProc;
  |     }
  | 
  |     public void setFileNameProc(String fileNameProc) {
  |         this.fileNameProc = fileNameProc;
  |     }
  | 
  |     public String getItemNum() {
  |         return itemNum;
  |     }
  | 
  |     public void setItemNum(String itemNum) {
  |         this.itemNum = itemNum;
  |     }
  | 
  |     public Long getItemTypeId() {
  |         return itemTypeId;
  |     }
  | 
  |     public void setItemTypeId(Long itemTypeId) {
  |         this.itemTypeId = itemTypeId;
  |     }
  | 
  |     public Long getLineNumber() {
  |         return lineNumber;
  |     }
  | 
  |     public void setLineNumber(Long lineNumber) {
  |         this.lineNumber = lineNumber;
  |     }
  | 
  |     public Long getLineQty() {
  |         return lineQty;
  |     }
  | 
  |     public void setLineQty(Long lineQty) {
  |         this.lineQty = lineQty;
  |     }
  | 
  |     public Long getMailingLineId() {
  |         return mailingLineId;
  |     }
  | 
  |     public void setMailingLineId(Long mailingLineId) {
  |         this.mailingLineId = mailingLineId;
  |     }
  | 
  |     public Long getPageCount() {
  |         return pageCount;
  |     }
  | 
  |     public void setPageCount(Long pageCount) {
  |         this.pageCount = pageCount;
  |     }
  | 
  |     public Long getMailingId() {
  |         return mailingId;
  |     }
  | 
  |     public void setMailingId(Long mailingId) {
  |         this.mailingId = mailingId;
  |     }
  |     
  |     public UploadedFile getUploadedFile() {
  |             return uploadedFile;
  |     }
  | 
  |     public void setUploadedFile(UploadedFile pdfPrintFile) {
  |             this.uploadedFile = pdfPrintFile;
  |     }
  | 
  | }
  | 
  | web.xml
  | <?xml version="1.0" ?>
  | <web-app xmlns="http://java.sun.com/xml/ns/j2ee";
  |          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
  |          xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd";
  |          version="2.4">
  |     <distributable />
  | 
  |     <listener>
  |         
<listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
  |     </listener>
  | 
  |     <servlet>
  |         <servlet-name>Faces Servlet</servlet-name>
  |         <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
  |         <load-on-startup>1</load-on-startup>
  |     </servlet>
  |     
  |     <servlet-mapping>
  |         <servlet-name>Faces Servlet</servlet-name>
  |         <url-pattern>*.faces</url-pattern>
  |     </servlet-mapping>                    
  |         
  |     <servlet>
  |         <servlet-name>Login Servlet</servlet-name>
  |         <servlet-class>com.cci.pz.web.login.LoginServlet</servlet-class>
  |         <load-on-startup>1</load-on-startup>
  |     </servlet>
  |     
  |     <servlet-mapping>
  |         <servlet-name>Login Servlet</servlet-name>
  |         <url-pattern>/LoginServlet</url-pattern>
  |     </servlet-mapping> 
  | 
  |     <servlet>
  |         <servlet-name>PlaceOrder Servlet</servlet-name>
  |         <servlet-class>com.cci.pz.web.PlaceOrder</servlet-class>
  |         <load-on-startup>1</load-on-startup>
  |     </servlet>
  |     
  |     <servlet-mapping>
  |         <servlet-name>PlaceOrder Servlet</servlet-name>
  |         <url-pattern>/PlaceOrder</url-pattern>
  |     </servlet-mapping> 
  | 
  |     <servlet>
  |             <servlet-name>Komatsu Servlet</servlet-name>
  |         <servlet-class>com.cci.pz.web.xmlProcess.Komatsu</servlet-class>
  |         <load-on-startup>1</load-on-startup>
  |     </servlet>
  |     
  |     <servlet-mapping>
  |         <servlet-name>Komatsu Servlet</servlet-name>
  |         <url-pattern>/Komatsu</url-pattern>
  |     </servlet-mapping> 
  | 
  |     <filter>
  |             <filter-name>MyFacesExtensionsFilter</filter-name>
  |             
<filter-class>org.apache.myfaces.component.html.util.ExtensionsFilter</filter-class>
  |         <init-param>
  |             <param-name>maxFileSize</param-name>
  |             <param-value>20m</param-value>
  |         </init-param>
  |     </filter>
  |     
  |     <!-- extension mapping for adding <script/>, <link/>, and other 
resource tags to JSF-pages  -->
  |     <filter-mapping>
  |         <filter-name>MyFacesExtensionsFilter</filter-name>
  |         <!-- servlet-name must match the name of your 
javax.faces.webapp.FacesServlet entry -->
  |         <servlet-name>Faces Servlet</servlet-name>
  |     </filter-mapping>
  |     
  |     <!-- extension mapping for serving page-independent resources 
(javascript, stylesheets, images, etc.)  -->
  |     <filter-mapping>
  |         <filter-name>MyFacesExtensionsFilter</filter-name>
  |         <url-pattern>/faces/myFacesExtensionResource/*</url-pattern>
  |     </filter-mapping>    
  |     
  |     <!-- extension mapping for adding <script/>, <link/>, and other 
resource tags to JSF-pages  -->
  |     <filter-mapping>
  |         <filter-name>MyFacesExtensionsFilter</filter-name>
  |         <url-pattern>*.jsf</url-pattern>
  |     </filter-mapping>
  |     
  |     <filter>
  |         <filter-name>extensionsFilter</filter-name>
  |         
<filter-class>org.apache.myfaces.component.html.util.ExtensionsFilter</filter-class>
  |         <init-param>
  |             <param-name>uploadMaxFileSize</param-name>
  |             <param-value>100m</param-value>
  |         </init-param>
  |         <init-param>
  |             <param-name>uploadThresholdSize</param-name>
  |             <param-value>100k</param-value>
  |         </init-param>
  | 
  |         <init-param>
  |             <param-name>uploadRepositoryPath</param-name>
  |             
<param-value>C:\jboss-4.0.3SP1\server\default\deploy\jbossweb-tomcat55.sar\ROOT.war\mailUpload\</param-value>
  |         </init-param>
  |     </filter>
  | 
  |     <filter-mapping>
  |         <filter-name>extensionsFilter</filter-name>
  |         <url-pattern>*.jsf</url-pattern>
  |     </filter-mapping>       
  |     
  |     <context-param>
  |             <param-name>pz3FilePath</param-name>
  |             <param-value>c:\jboss-4.0.3SP1\server\default\</param-value>
  |     </context-param>        
  |     
  |     <context-param>
  |             <param-name>pz3ViewableLocation</param-name>
  |             
<param-value>C:\jboss-4.0.3SP1\server\default\deploy\jbossweb-tomcat55.sar\ROOT.war\pz3Viewable\</param-value>
  |     </context-param>
  |     
  |     <context-param>
  |             <param-name>pz3Viewables</param-name>
  |             <param-value>http://hq00416:8080/pz3Viewable/</param-value>
  |     </context-param>        
  | </web-app>
  | 
  | Thanks & Regds
  | Viji

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

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

Reply via email to