PDA

View Full Version : Java


Diego Armando
27-11-2003, 00:32
Ciao!!!
Ho scritto questa semplice servlet che accede ad un file daml e stampa le sottoclassi di un classe richiesta.
Il sorgente è questo:

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;


import com.hp.hpl.jena.daml.*;
import com.hp.hpl.jena.daml.common.DAMLModelImpl;

import com.hp.hpl.mesa.rdf.jena.model.*;

import java.util.Iterator;


public class JDBCServlet extends HttpServlet
{
public void service
(HttpServletRequest req, HttpServletResponse res)
throws IOException, RDFException
{
res.setContentType("text/html");
PrintWriter out = res.getWriter();
String nodo=req.getParameter("nodo");
String argomento_espanso = "<DAMLClass http://www.newOnto.org/1069713887631#" + "nodo" + ">";


DAMLModel model = new DAMLModelImpl();
model.read("file:///C:/jena/AIOntoDAML.daml");
Iterator it = model.listDAMLClasses();
while (it.hasNext()) {

DAMLClass c = (DAMLClass)it.next();
//System.out.println(c.toString());
if (c.toString().equals(argomento_espanso)) {
//System.out.println("Sottoclassi di Prolog");
out.print("<HTML>");
out.print("<BODY>");
Iterator d = c.getSubClasses();
while(d.hasNext())
{
DAMLClass e = (DAMLClass)d.next();

out.print(e.toString() + "<BR>");
//System.out.println(e.toString());
}
}





out.print("</BODY>");
out.print("</HTML>");
}
}

}

La compilazione mi da questo errore che proprio non capisco:

C:\jena>javac JDBCServlet.java
JDBCServlet.java:17: service(javax.servlet.http.HttpServletRequest,javax.servlet
.http.HttpServletResponse) in JDBCServlet cannot override service(javax.servlet.
http.HttpServletRequest,javax.servlet.http.HttpServletResponse) in javax.servlet
.http.HttpServlet; overridden method does not throw com.hp.hpl.mesa.rdf.jena.mod
el.RDFException
public void service
^
1 error

Dove sbaglio?
Grazie per le eventuali risposte

Molz
27-11-2003, 09:12
semplicemente il tuo metodo service nn può sovrascrivere il metodo service di javax.servlet .http.HttpServlet (la classe ke estendi) e tutto ciò xké lanci l'eccezione com.hp.hpl.mesa.rdf.jena.model.RDFException

(bastava tradurre il messaggio d'errore)

cambia la definizione del metodo service togliendo il lancio di qell'eccezione

public void service
(HttpServletRequest req, HttpServletResponse res) throws IOException{
try{

...
}catch(RDFException rdfe){}
}

Diego Armando
27-11-2003, 23:40
Grazie Molz...adesso funziona perfettamente