i'm a newbie i have tried upload in the tapestry Tapestry Component Reference. but i've got some error :
org.apache.tapestry.ApplicationRuntimeException Could not load class UploadPage from [EMAIL PROTECTED](file:/C:/my%20workspace/eols/webapp/WEB-INF/classes/) --parent--> [EMAIL PROTECTED]: UploadPage could anyone help me ? this is the code : Documents.java =============================================================================================== package edu.eols.web.page; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.text.Format; import java.text.NumberFormat; import org.apache.tapestry.IRequestCycle; import org.apache.tapestry.html.BasePage; import org.apache.tapestry.request.IUploadFile; public class Documents extends BasePage { public static final Format SIZE_FORMAT = NumberFormat.getNumberInstance(); private IUploadFile file; private File serverFile; public IUploadFile getFile() { return file; } public void setFile(IUploadFile value) { file = value; } public String getFilename() { if (file != null) { return file.getFileName(); } else { return ""; } } public String getClientPath() { if (file != null) { return file.getFilePath(); } else { return ""; } } public String getServerPath() { if (serverFile != null) { return serverFile.getAbsolutePath(); } else { return ""; } } public long getFileSize() { if (serverFile != null) { return serverFile.length(); } else { return 0; } } public void formSubmit(IRequestCycle cycle) { InputStream fis = file.getStream(); FileOutputStream fos = null; try { fos = new FileOutputStream(new File(file.getFileName())); byte[] buffer = new byte[1024]; while (true) { int length = fis.read(buffer); if (length < 0) { break; } fos.write(buffer, 0, length); } fis.close(); fos.close(); serverFile = new File(file.getFileName()); } catch (IOException ioe) { ioe.printStackTrace(); } finally { if (fis != null) { try { fis.close(); } catch (IOException ioe) {} } if (fos != null) { try { fos.close(); } catch (IOException ioe) {} } } } protected void initialize() { file = null; serverFile = null; } } ============================================================================ Documents.html <form jwcid="@Form" listener="ognl:listeners.formSubmit"> <table width="100%" border="0"> <tr> <td colspan="2">File: <input jwcid="@Upload" file="ognl:file" type= "file"></input></td> </tr> <tr> <td colspan="2"><input type= "submit"value="Upload"></input></td> </tr> <tr> <td colspan="2"><hr></td> </tr> <tr> <td>Filename:</td><td><span jwcid="@Insert" value="ognl:filename"/></td> </tr> <tr> <td>Client path:</td><td><span jwcid="@Insert" value="ognl:clientPath"/></td> </tr> <tr> <td>Server Path:</td><td><span jwcid="@Insert" value="ognl:serverPath"/></td> </tr> <tr> <td>File Size:</td><td><span jwcid="@Insert" value="ognl:fileSize" format="ognl:@[EMAIL PROTECTED]"/> bytes</td> </tr> </table> </form> ================================================================ Documents.page <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE page-specification PUBLIC "-//Apache Software Foundation//Tapestry Specification 3.0//EN" "http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd"> <!-- generated by Spindle, http://spindle.sourceforge.net --> <page-specification class="edu.eols.web.page.Documents"> <description>add a description</description> <context-asset name="home_01" path="/images/home_01.gif"/> <context-asset name="home_02" path="/images/home_02.gif"/> <context-asset name="home_03" path="/images/home_03.gif"/> <context-asset name="home_04" path="/images/home_04.gif"/> <context-asset name="home_05" path="/images/home_05.gif"/> <context-asset name="home_06" path="/images/home_06.gif"/> <context-asset name="home_07" path="/images/home_07.gif"/> </page-specification> ==================================================================== eosl.application <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE application PUBLIC "-//Apache Software Foundation//Tapestry Specification 3.0//EN" "http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd"> <!-- generated by Spindle, http://spindle.sourceforge.net --> <application name="eols" engine-class="org.apache.tapestry.engine.BaseEngine"> <description>add a description</description> <page name="Home" specification-path="Documents.page"/> <extension name="org.apache.tapestry.multipart-decoder" class="org.apache.tapestry.multipart.DefaultMultipartDecoder"> <configure property-name="maxSize" type="double" value="134217728"/> </extension> </application>