Re: WicketNotSerializableException withi FileUpload
I removed the Model instantion from the FileUploadField and this issue has gone. Cheers! J. On Nov 8, 2007 11:31 PM, Johan Compagner <[EMAIL PROTECTED]> wrote: > Ok the problem is that somehow you are holding on to a FileUpload in your > page > And those are not meant to be kept over requests. > > it seems that you keep it if i read it right in a normal Model: > > [class=org.apache.wicket.model.Model] >private java.io.Serializable > org.apache.wicket.model.Model.object > [class=org.apache.wicket.markup.html.form.upload.FileUpload] > > How do you create the FileUploadField? > > I guess with a normal new Model()? > > I think we need to fix that somehow in the detach of the FUF because if the > model is set > we should look into the model and if it is a FileUpload get rid of it or > something. > > johan > > On Nov 8, 2007 3:26 PM, James Perry <[EMAIL PROTECTED]> wrote: > > > Hello Johan, > > > > Thanks for the repsonse. :-) > > > > All I have done is follow the code within theSingleFileUpload example > > in wicketstuff.com. Is this a bug or am I doing something wrong? I am > > using Wicket 1.3.0-beta4 and here is the stack of the exception: > > > > ERROR - Objects- Error serializing object class > > com.wicketcart.pages.admin.AddProductPage [object=[Page class = > > com.wicketcart.pages.admin.AddProductPage, id = 2, version = 0]] > > > > org.apache.wicket.util.io.SerializableChecker$WicketNotSerializableException: > > Unable to serialize class: > > org.apache.wicket.util.io.DeferredFileOutputStream > > Field hierarchy is: > > 2 [class=com.wicketcart.pages.admin.AddProductPage, path=2] > >private java.lang.Object > > org.apache.wicket.MarkupContainer.children > > [class=com.wicketcart.components.MenuBorder, path=2:libBorder] > > private java.lang.Object > > org.apache.wicket.MarkupContainer.children > > [class=[Lorg.apache.wicket.Component;] > >private > > org.apache.wicket.markup.html.ContainerWithAssociatedMarkupHelper > > > > org.apache.wicket.markup.html.WebMarkupContainerWithAssociatedMarkup.markupHelper > > [7] > > [class=com.wicketcart.pages.admin.AddProductPage$AddProductForm, > > path=2:libBorder:productForm] > > private java.lang.Object > > org.apache.wicket.MarkupContainer.children > > [class=[Lorg.apache.wicket.Component;] > >private final java.lang.String > > org.apache.wicket.markup.html.form.ChoiceRenderer.idExpression[7] > > [class=org.apache.wicket.markup.html.form.upload.FileUploadField, > > path=2:libBorder:productForm:fileInput] > > org.apache.wicket.model.IModel > > org.apache.wicket.Component.model > > [class=org.apache.wicket.model.Model] > >private java.io.Serializable > > org.apache.wicket.model.Model.object > > [class=org.apache.wicket.markup.html.form.upload.FileUpload] > > private final org.apache.wicket.util.upload.FileItem > > org.apache.wicket.markup.html.form.upload.FileUpload.item > > [class=org.apache.wicket.util.upload.DiskFileItem] > >private > > org.apache.wicket.util.io.DeferredFileOutputStream > > org.apache.wicket.util.upload.DiskFileItem.dfos > > [class=org.apache.wicket.util.io.DeferredFileOutputStream] <- > > field that is not serializable > >at org.apache.wicket.util.io.SerializableChecker.check( > > SerializableChecker.java:347) > >at org.apache.wicket.util.io.SerializableChecker.checkFields( > > SerializableChecker.java:615) > >at org.apache.wicket.util.io.SerializableChecker.check( > > SerializableChecker.java:538) > >at org.apache.wicket.util.io.SerializableChecker.checkFields( > > SerializableChecker.java:615) > >at org.apache.wicket.util.io.SerializableChecker.check( > > SerializableChecker.java:538) > >at org.apache.wicket.util.io.SerializableChecker.checkFields( > > SerializableChecker.java:615) > >at org.apache.wicket.util.io.SerializableChecker.check( > > SerializableChecker.java:538) > >at org.apache.wicket.util.io.SerializableChecker.checkFields( > > SerializableChecker.java:615) > >at org.apache.wicket.util.io.SerializableChecker.check( > > SerializableChecker.java:538) > >at org.apache.wicket.util.io.SerializableChecker.check( > > SerializableChecker.java:393) > >at org.apache.wicket.util.io.SerializableChecker.checkFields( > > SerializableChecker.java:615) > >at org.apache.wicket.util.io.SerializableChecker.check( > > SerializableChecker.java:538) > >at org.apache.wicket.util.io.SerializableChecker.check( > > SerializableChecker.java:393) > >at org.apache.wicket.util.io.SerializableChecker.checkFields( > > SerializableChecker.java:615) > >at org.apache.wicket.util.io.SerializableChecker.check( > > SerializableChecker.java:538) > >at org.apache.wicket.util.io.SerializableChecker.checkFields( > > SerializableChecker.java:615) > >at org.apache.wicket.util.io.SerializableChecker
Re: WicketNotSerializableException withi FileUpload
Ok the problem is that somehow you are holding on to a FileUpload in your page And those are not meant to be kept over requests. it seems that you keep it if i read it right in a normal Model: [class=org.apache.wicket.model.Model] private java.io.Serializable org.apache.wicket.model.Model.object [class=org.apache.wicket.markup.html.form.upload.FileUpload] How do you create the FileUploadField? I guess with a normal new Model()? I think we need to fix that somehow in the detach of the FUF because if the model is set we should look into the model and if it is a FileUpload get rid of it or something. johan On Nov 8, 2007 3:26 PM, James Perry <[EMAIL PROTECTED]> wrote: > Hello Johan, > > Thanks for the repsonse. :-) > > All I have done is follow the code within theSingleFileUpload example > in wicketstuff.com. Is this a bug or am I doing something wrong? I am > using Wicket 1.3.0-beta4 and here is the stack of the exception: > > ERROR - Objects- Error serializing object class > com.wicketcart.pages.admin.AddProductPage [object=[Page class = > com.wicketcart.pages.admin.AddProductPage, id = 2, version = 0]] > > org.apache.wicket.util.io.SerializableChecker$WicketNotSerializableException: > Unable to serialize class: > org.apache.wicket.util.io.DeferredFileOutputStream > Field hierarchy is: > 2 [class=com.wicketcart.pages.admin.AddProductPage, path=2] >private java.lang.Object > org.apache.wicket.MarkupContainer.children > [class=com.wicketcart.components.MenuBorder, path=2:libBorder] > private java.lang.Object > org.apache.wicket.MarkupContainer.children > [class=[Lorg.apache.wicket.Component;] >private > org.apache.wicket.markup.html.ContainerWithAssociatedMarkupHelper > > org.apache.wicket.markup.html.WebMarkupContainerWithAssociatedMarkup.markupHelper > [7] > [class=com.wicketcart.pages.admin.AddProductPage$AddProductForm, > path=2:libBorder:productForm] > private java.lang.Object > org.apache.wicket.MarkupContainer.children > [class=[Lorg.apache.wicket.Component;] >private final java.lang.String > org.apache.wicket.markup.html.form.ChoiceRenderer.idExpression[7] > [class=org.apache.wicket.markup.html.form.upload.FileUploadField, > path=2:libBorder:productForm:fileInput] > org.apache.wicket.model.IModel > org.apache.wicket.Component.model > [class=org.apache.wicket.model.Model] >private java.io.Serializable > org.apache.wicket.model.Model.object > [class=org.apache.wicket.markup.html.form.upload.FileUpload] > private final org.apache.wicket.util.upload.FileItem > org.apache.wicket.markup.html.form.upload.FileUpload.item > [class=org.apache.wicket.util.upload.DiskFileItem] >private > org.apache.wicket.util.io.DeferredFileOutputStream > org.apache.wicket.util.upload.DiskFileItem.dfos > [class=org.apache.wicket.util.io.DeferredFileOutputStream] <- > field that is not serializable >at org.apache.wicket.util.io.SerializableChecker.check( > SerializableChecker.java:347) >at org.apache.wicket.util.io.SerializableChecker.checkFields( > SerializableChecker.java:615) >at org.apache.wicket.util.io.SerializableChecker.check( > SerializableChecker.java:538) >at org.apache.wicket.util.io.SerializableChecker.checkFields( > SerializableChecker.java:615) >at org.apache.wicket.util.io.SerializableChecker.check( > SerializableChecker.java:538) >at org.apache.wicket.util.io.SerializableChecker.checkFields( > SerializableChecker.java:615) >at org.apache.wicket.util.io.SerializableChecker.check( > SerializableChecker.java:538) >at org.apache.wicket.util.io.SerializableChecker.checkFields( > SerializableChecker.java:615) >at org.apache.wicket.util.io.SerializableChecker.check( > SerializableChecker.java:538) >at org.apache.wicket.util.io.SerializableChecker.check( > SerializableChecker.java:393) >at org.apache.wicket.util.io.SerializableChecker.checkFields( > SerializableChecker.java:615) >at org.apache.wicket.util.io.SerializableChecker.check( > SerializableChecker.java:538) >at org.apache.wicket.util.io.SerializableChecker.check( > SerializableChecker.java:393) >at org.apache.wicket.util.io.SerializableChecker.checkFields( > SerializableChecker.java:615) >at org.apache.wicket.util.io.SerializableChecker.check( > SerializableChecker.java:538) >at org.apache.wicket.util.io.SerializableChecker.checkFields( > SerializableChecker.java:615) >at org.apache.wicket.util.io.SerializableChecker.check( > SerializableChecker.java:538) >at > org.apache.wicket.util.io.SerializableChecker.writeObjectOverride( > SerializableChecker.java:683) >at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java > :298) >at > org.apache.wicket.util.io.IObjectStreamFactory$1.writeObjectOverride( > IObjectStreamFactory.java:74) >at java.io
Re: WicketNotSerializableException withi FileUpload
Hello Johan, Thanks for the repsonse. :-) All I have done is follow the code within theSingleFileUpload example in wicketstuff.com. Is this a bug or am I doing something wrong? I am using Wicket 1.3.0-beta4 and here is the stack of the exception: ERROR - Objects- Error serializing object class com.wicketcart.pages.admin.AddProductPage [object=[Page class = com.wicketcart.pages.admin.AddProductPage, id = 2, version = 0]] org.apache.wicket.util.io.SerializableChecker$WicketNotSerializableException: Unable to serialize class: org.apache.wicket.util.io.DeferredFileOutputStream Field hierarchy is: 2 [class=com.wicketcart.pages.admin.AddProductPage, path=2] private java.lang.Object org.apache.wicket.MarkupContainer.children [class=com.wicketcart.components.MenuBorder, path=2:libBorder] private java.lang.Object org.apache.wicket.MarkupContainer.children [class=[Lorg.apache.wicket.Component;] private org.apache.wicket.markup.html.ContainerWithAssociatedMarkupHelper org.apache.wicket.markup.html.WebMarkupContainerWithAssociatedMarkup.markupHelper[7] [class=com.wicketcart.pages.admin.AddProductPage$AddProductForm, path=2:libBorder:productForm] private java.lang.Object org.apache.wicket.MarkupContainer.children [class=[Lorg.apache.wicket.Component;] private final java.lang.String org.apache.wicket.markup.html.form.ChoiceRenderer.idExpression[7] [class=org.apache.wicket.markup.html.form.upload.FileUploadField, path=2:libBorder:productForm:fileInput] org.apache.wicket.model.IModel org.apache.wicket.Component.model [class=org.apache.wicket.model.Model] private java.io.Serializable org.apache.wicket.model.Model.object [class=org.apache.wicket.markup.html.form.upload.FileUpload] private final org.apache.wicket.util.upload.FileItem org.apache.wicket.markup.html.form.upload.FileUpload.item [class=org.apache.wicket.util.upload.DiskFileItem] private org.apache.wicket.util.io.DeferredFileOutputStream org.apache.wicket.util.upload.DiskFileItem.dfos [class=org.apache.wicket.util.io.DeferredFileOutputStream] <- field that is not serializable at org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:347) at org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:615) at org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:538) at org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:615) at org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:538) at org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:615) at org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:538) at org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:615) at org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:538) at org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:393) at org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:615) at org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:538) at org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:393) at org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:615) at org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:538) at org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:615) at org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:538) at org.apache.wicket.util.io.SerializableChecker.writeObjectOverride(SerializableChecker.java:683) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:298) at org.apache.wicket.util.io.IObjectStreamFactory$1.writeObjectOverride(IObjectStreamFactory.java:74) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:298) at org.apache.wicket.util.lang.Objects.objectToByteArray(Objects.java:1097) at org.apache.wicket.protocol.http.pagestore.AbstractPageStore.serializePage(AbstractPageStore.java:200) at org.apache.wicket.protocol.http.pagestore.DiskPageStore.storePage(DiskPageStore.java:709) at org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.put(SecondLevelCacheSessionStore.java:337) at org.apache.wicket.Session.requestDetached(Session.java:1391) at org.apache.wicket.RequestCycle.detach(RequestCycle.java:1016) at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1263) at org.apache.wicket.RequestCycle.request(RequestCycle.java:489) at org.apache.wicket.protocol.http.WicketFilter.doG
Re: WicketNotSerializableException withi FileUpload
what is the full stack of the exception? because who does have that field? Streams should always be transient because those can't be serialized whats the wicket version? johan On 11/6/07, James Perry <[EMAIL PROTECTED]> wrote: > > Hello fellow Wicket users, > > I am getting a > org.apache.wicket.util.io.SerializableChecker$WicketNotSerializableException: > Unable to serialize class: > org.apache.wicket.util.io.DeferredFileOutputStream exception when I > added a file upload feature to my AddProductForm. > > My form is serialiazable yet I don't which of its child components are > not serializable. Can anyone shed any light on this? > > Cheers, > James. > > Here is my Page class: > > public class AddProductPage extends AdminPage { > >private static final long serialVersionUID = 1L; > >@SpringBean(name="adminService") >private AdminService adminService; > >public AddProductPage(Product product) { >MenuBorder border = new MenuBorder("libBorder"); >border.add(new FeedbackPanel("feedback")); >border.add(new AddProductForm("productForm", product)); >add(border); >} > >private final class AddProductForm extends Form { > >private static final long serialVersionUID = 1L; > >private FileUploadField fileUploadField; > >public AddProductForm(String id, Product product) { >super(id, new CompoundPropertyModel(product)); >setMultiPart(true); >add(new RequiredTextField("name")); >add(new RequiredTextArea("description")); >add(new RequiredTextField("sellValue", > BigDecimal.class)); >add(new RequiredTextField("units", Long.class)); >add(new CheckBox("onSell")); >add(new DropDownChoice("category", > catalogService.getCategories())); >add(new DropDownChoice("manufacturer", > catalogService.getManufacturers())); >add(fileUploadField = new > FileUploadField("fileInput", new > Model(fileUploadField))); >setMaxSize(Bytes.megabytes(100)); >} > >@Override >protected void onSubmit() { >final FileUpload upload = > fileUploadField.getFileUpload(); >if (upload != null) >System.out.println("File is not empty! Whoo > hooo!"); >else >System.out.println("File is empty! Whoo > hooo!"); >fileUploadField.detachModels(); >/**Product product = (Product) getModelObject(); >product.setEntryDate(new Timestamp( > System.currentTimeMillis())); >product.setImageURL("uploads/"); >System.out.println(product.getCategory()); >adminService.saveProduct(product); >setResponsePage(ViewProductsPage.class);**/ >} > >} > > } > > - > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > >
WicketNotSerializableException withi FileUpload
Hello fellow Wicket users, I am getting a org.apache.wicket.util.io.SerializableChecker$WicketNotSerializableException: Unable to serialize class: org.apache.wicket.util.io.DeferredFileOutputStream exception when I added a file upload feature to my AddProductForm. My form is serialiazable yet I don't which of its child components are not serializable. Can anyone shed any light on this? Cheers, James. Here is my Page class: public class AddProductPage extends AdminPage { private static final long serialVersionUID = 1L; @SpringBean(name="adminService") private AdminService adminService; public AddProductPage(Product product) { MenuBorder border = new MenuBorder("libBorder"); border.add(new FeedbackPanel("feedback")); border.add(new AddProductForm("productForm", product)); add(border); } private final class AddProductForm extends Form { private static final long serialVersionUID = 1L; private FileUploadField fileUploadField; public AddProductForm(String id, Product product) { super(id, new CompoundPropertyModel(product)); setMultiPart(true); add(new RequiredTextField("name")); add(new RequiredTextArea("description")); add(new RequiredTextField("sellValue", BigDecimal.class)); add(new RequiredTextField("units", Long.class)); add(new CheckBox("onSell")); add(new DropDownChoice("category", catalogService.getCategories())); add(new DropDownChoice("manufacturer", catalogService.getManufacturers())); add(fileUploadField = new FileUploadField("fileInput", new Model(fileUploadField))); setMaxSize(Bytes.megabytes(100)); } @Override protected void onSubmit() { final FileUpload upload = fileUploadField.getFileUpload(); if (upload != null) System.out.println("File is not empty! Whoo hooo!"); else System.out.println("File is empty! Whoo hooo!"); fileUploadField.detachModels(); /**Product product = (Product) getModelObject(); product.setEntryDate(new Timestamp(System.currentTimeMillis())); product.setImageURL("uploads/"); System.out.println(product.getCategory()); adminService.saveProduct(product); setResponsePage(ViewProductsPage.class);**/ } } } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]