I'm creating a JSP page for doing some actions on a database.
Everything is working, but I have to add abstract classes as well. When I put the abstraction on a klasse and his two extensions, I get immidiatly a blue HTTP 500 apache status error.

HTTP Status 500 -

type Exception report


message


description The server encountered an internal error () that prevented it from fulfilling this request.


exception


javax.servlet.ServletException: jestem.Software
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:867)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:800)
org.apache.jsp.OSWGeefID_jsp._jspService(OSWGeefID_jsp.java:104)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:305)



root cause


java.lang.InstantiationError: jestem.Software
beans.SoftwareBean.<init>(SoftwareBean.java:111)
org.apache.jsp.OSWGeefID_jsp._jspService(OSWGeefID_jsp.java:55)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:305)



note The full stack trace of the root cause is available in the Tomcat logs.


=============================================
package jestem;


/**
*
* @author  Alwine
*/
public abstract class Software {
// initialisatie
private int swid;
private String naam;
private String versie;
private String patchlevel;
private String licentie;
private String soortlicentie;
private String leverancier;
private String omschrijving;
private String beperkingen;


//nodig bij inlezen uit database
public abstract int getSwid();
public abstract void setSwid(int eenSwid);
public abstract void setNaam(String eenNaam);
public abstract String getNaam();
public abstract String getVersie();
public abstract void setVersie(String eenVersie);
public abstract String getPatchlevel();
public abstract void setPatchlevel(String eenPatchlevel);
public abstract String getLicentie();
public abstract void setLicentie(String eenLicentie);
public abstract String getSoortlicentie();
public abstract void setSoortlicentie(String eenSoortlicentie);
public abstract String getLeverancier();
public abstract void setLeverancier(String eenLeverancier);
public abstract String getOmschrijving();
public abstract void setOmschrijving(String eenOmschrijving);
public abstract String getBeperkingen();
public abstract void setBeperkingen(String eenBeperkingen);
}
============
/*
* Monitor.java
*
* Created on 4 oktober 2005, 15:24
*/


package jestem;



/**
*Klasse monitor is subklasse van hardware
* @author  Administrator
*/
public class Osoftware extends Software{


private int swid = 0;
private String typesw = "";
private String besturingssw = "";
private String naam = "";
private String versie = "";
private String patchlevel = "";
private String licentie = "";
private String soortlicentie = "";
private String leverancier = "";
private String omschrijving = "";
private String beperkingen = "";


/** Creates a new instance of Monitor */
public Osoftware(String eenNaam, String eenVersie) {
naam = eenNaam;
setVersie( eenVersie);
}


public Osoftware() {
}


//set de attribuut waarde van msoort
public void setMsoort(int eenSwid) {
swid = eenSwid;
}


//ophalen msoort
public int getSwid() {
return swid;
}


public void setTypesw(String eenTypesw) {
typesw = eenTypesw;
}
//ophalen aantalprt
public String getTypesw() {
return typesw;
}


public void setBesturingssw(String eenBesturingssw) {
besturingssw = eenBesturingssw;
}
//ophalen aantalprt
public String getBesturingssw() {
return besturingssw;
}


public void setSwid(int eenSwid) {
swid = eenSwid;
}
public void setNaam(String eenNaam) {
naam = eenNaam;
}


public String getNaam() {
return naam;
}


public String getVersie() {
return versie;
}


public void setVersie(String eenVersie) {
versie = eenVersie;
}


public String getPatchlevel() {
return patchlevel;
}


public void setPatchlevel(String eenPatchlevel) {
patchlevel = eenPatchlevel;
}


public String getLicentie() {
return licentie;
}


public void setLicentie(String eenLicentie) {
licentie = eenLicentie;
}


public String getSoortlicentie() {
return soortlicentie;
}


public void setSoortlicentie(String eenSoortlicentie) {
soortlicentie = eenSoortlicentie;
}


public String getLeverancier() {
return leverancier;
}


public void setLeverancier(String eenLeverancier) {
leverancier = eenLeverancier;
}


public String getOmschrijving() {
return omschrijving;
}


public void setOmschrijving(String eenOmschrijving) {
omschrijving = eenOmschrijving;
}


public String getBeperkingen() {
return beperkingen;
}


public void setBeperkingen(String eenBeperkingen) {
beperkingen = eenBeperkingen;
}
}
==============
/*
* Monitor.java
*
* Created on 4 oktober 2005, 15:24
*/


package jestem;



/**
*Klasse monitor is subklasse van hardware
* @author  Administrator
*/
public class Bsoftware extends Software{


private int swid = 0;
private String naam = "";
private String versie = "";
private String patchlevel = "";
private String licentie = "";
private String soortlicentie = "";
private String leverancier = "";
private String omschrijving = "";
private String beperkingen = "";


/** Creates a new instance of Monitor */
public Bsoftware(String eenNaam, String eenVersie) {
naam = eenNaam;
setVersie( eenVersie);
}


public Bsoftware() {
}


//set de attribuut waarde van msoort
public void setMsoort(int eenSwid) {
swid = eenSwid;
}


//ophalen msoort
public int getSwid() {
return swid;
}


public void setSoortlicentie(String eenSoortlicentie) {
soortlicentie = eenSoortlicentie;
}
//ophalen aantalprt
public String getSoortlicentie() {
return soortlicentie;
}


public void setSwid(int eenSwid) {
swid = eenSwid;
}
public void setNaam(String eenNaam) {
naam = eenNaam;
}


public String getNaam() {
return naam;
}


public String getVersie() {
return versie;
}


public void setVersie(String eenVersie) {
versie = eenVersie;
}


public String getPatchlevel() {
return patchlevel;
}


public void setPatchlevel(String eenPatchlevel) {
patchlevel = eenPatchlevel;
}


public String getLicentie() {
return licentie;
}


public void setLicentie(String eenLicentie) {
licentie = eenLicentie;
}


public String getLeverancier() {
return leverancier;
}


public void setLeverancier(String eenLeverancier) {
leverancier = eenLeverancier;
}


public String getOmschrijving() {
return omschrijving;
}


public void setOmschrijving(String eenOmschrijving) {
omschrijving = eenOmschrijving;
}


public String getBeperkingen() {
return beperkingen;
}


public void setBeperkingen(String eenBeperkingen) {
beperkingen = eenBeperkingen;
}
}

Can someone please help me....
thxs.

Edited 3 Years Ago by happygeek: fixed formatting

yes but it is a java problem ;)

Ummmm.....Are you trying to use the "new" construct to instantiate an abstract class????

The root cause error should give it away.

Yep I have another database class with a "new" construct.
It says "jestem/Database.java [129:1] jestem.Software is abstract; cannot be instantiated".
Software eenSoftware = new Software();

What is the better way to do it?

You can't create instances of an abstract class. Read up on the why of abstract classes and you should understand how to use them.

In short: an abstract class is a designated root for a class hierarchy, providing a common set of method implementations for functionality to be shared by all classes derived from it.

This article has been dead for over six months. Start a new discussion instead.