Re: ERROR: exceded the 65,535 byte limit
On 11/14/2010 11:16 AM, Spirit wrote:
I use Eclipse Europe and Apache Wicket 1.4.10 to develop web applications.
I am newbie. I am try to make a ecommerce web site.
I follow the example Cheese Shop in "Wicket in Action" manual.
I put the products database in memory in a ArrayList in MainApplication.
I works all ok, until the database was small. Now it include about 1000
products,
so I had this error: ...exceded the 65,535 byte limit
Use a database.
I found in google [sic] search some solution as to put the database in an external
text file with fields divided with semicolon ;
Bad idea. Use a database such as Derby (Java DB), which is included with the JDK.
like .csv files
and read it from java [sic] class.
One line for every product, and 32 fields of Strings, like I declared in
Class C:
'C' is a terrible name for a type. Single letters like that are used for type
parameters, and you should not use them for actual types.
....
public class C implements Serializable {
You neglected to declare a 'final static long serialVersionUID'.
private String cat1;
private String art;
private String cat2;
private String cat3;
....
public C(String cat1, String art, String cat2, String cat3, String cat4,
String cat5, String cat6, String cat7, String cat8, String cat9, String
cat10, String descr_it, String descr_en, String nota_it, String nota_en,
String Ricerca, String nfoto, String multi, String disp, String codprezzi,
String prezzopub, String prezzoriv, String prezzoacq, String peso, String
fornitore, String noteotty, String agg1, String agg2, String agg3, String
agg4, String agg5, String quantita) {
This is a terrible constructor. The compiler can't tell if the value for
'agg3' was provided in the spot for 'cat3'. Lengthy argument lists,
especially all of the same type, are an antipattern.
super();
Why call 'super()'?
this.cat1 = cat1;
this.art = art;
this.cat2 = cat2;
.....
So to implement it to my wicket MainApplication before to read from external
file, I am starting to convert source from this:
public class MainApplication extends WebApplication {
private List<C> cheeses = Arrays.asList(
new
C("BBTAA","001","","","","","","","","","","Portafotografia
argento","","","","","","","","","19.00","","","1000","ard","verif","","","","","","0"),
new C("BBTAA","002","","","","","","","","","","Serie
sacchetti in
azzurro","","","","","","","","","15.00","","","1000","ard","verif","","","","","",0),
new C("BBTAA","003","","","","","","","","","","Serie
sacchetti in
rosa","","","","","","","","","10.00","","","1000","ard","verif","","","","","",0),
new C(.................
To this:
public class MainApplication extends WebApplication {
private List<C> cheeses = new ArrayList<C>();
cheeses.add (new
You can't call a method from nowhere like this.
Make it a step in an 'init()' style of method, or part of the instance
initializer (wrap curly braces "{}" around it) or the constructor.
Read and study the Java tutorials.
<http://download.oracle.com/javase/tutorial/index.html>
C("BBTAA","001","","","","","","","","","","Portafotografia
argento","","","","","","","","","19.00","","","1000","ard","verif","","","","","","0"));
The last line (cheeses.add(...), give me this errors:
Multiple markers at this line
- Syntax error on token "add", = expected after this token
- Syntax error on token(s), misplaced construct(s)
Please Help me!
Keep studying the basics.
--
Lew