Bonjour a tous,
debutant en J2EE.
voila, je viens de faire un petit code de servlet qui permet d'envoyer une reponse en me disant que "The JDBC URL has been set as a context attribute".
Apres avoir lance la servlet le browser me repond "The request ressource(/ctx/servlet/SetttingCntx) is not available.
voici mon code complet:
import javax.servlet.*;
import java.io.*;
public class SetttingCntx extends GenericServlet
{
ServletContext ctx;
public void init (ServletConfig cfig)
{
/*Obtain the ServletContext object */
ctx=cfig.getServletContext();
}
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException
{
/* set the context attribute*/
ctx.setAttribute("URL","jdbc:odbc:EmployeesDB");
/*obtain the PrintWriter object*/
PrintWriter pw=response.getWriter();
/* Send response to indicate that the URL attribute as been set*/ response.setContentType("text/html");
pw.println("<B>The JDBC URL has been set as a context attribute</B>");
}
}
Apres avoir compile mon programme.
j'ai lance le "Start default server" du Sun Microsystem->Application server PE.
ceci m'a ouvert une fenetre du dos et au bout de qlqs instant il m'affiche que le serveur est pret...
Puis je lance le "Deploytool" et je fais:
File->new->Application
a Application Name=SetttingCntx
Dans la fenetre J2EE Deploytool SetttingCntx
je sauvegarde
Puis je fais New Web Component
je clique sur suivant.
Dans New Web Application Wizard Wrr File
je tape SetttingApp dans War Name et suivant
Dans Edit Contents of SetttingApp
je selectionne le fichier SetttingCntx.class
et ok.
Dans New Web Application Wizard-choose Component Type
je clique sur Servlet
et je clique next.
Dans New Web Application Wizard-Component General Properties je specifie bien le nom du fichier SetttingCntx dans Web Component Display name et je clique sur next.
Puis dans Nwe web Application Wizard- New Steps
je clique sur Finish
et enfin je suavegarde.
Puis dans Deploy Module SetttingCntx
je clique sur OK
La fenetre Distribute Module apparait et termine ses operations avec succes
puis je clique sur close
Ensuite
j'ouvre le browser internet et je tape l'adresse suivante"
http//localhost:8080/ctx/servlet/SetttingCntx
et la probleme il me dit qu'il ne trouve pas le ressource indique.
Voila ce que j'ai fait dans depoytool.
Merci de votre aide
__________________________
triple s
En fait c'est normal que la servlet ne reponde pas car il manque un fichier java qui permet de faire la requete donc sans la requete pas de reponse.
voici la fichier de requete:
import javax.servlet.*;
import java.io.*;
public class RetrievingCntx extends GenericServlet
{
ServletContext ctx;
String url;
public void init(ServletConfig cfig)
{
/* obtain the ServletContext object*/
ctx=cfig.getServletContext();
}
public void Service(ServletRequest request, ServletResponse response) throws ServletException, IOException
{
/*Retrieve the URL attribute*/
url=(String)ctx.getAttribute("URL");
/*Obtain a PrintWriter object*/
PrintWriter pw=response.getWriter();
/*Send response to display the value of the URL attribute*/
response.setContentType("text/html");
pw.println("<B>The URL value is </B>: "+ url + "<BR>");
}
}
Mais la un autre probleme arrive, c'est que ce fichier ne se compile pas.
erreur a la compilation:
RetrievingCntx is not abstract and does not override abstract method service(javax.servlet.ServletRequest, javax.servlet.ServletResponse) in javax.servlet.GenericServlet
public class RetrievingCntx extends GenericServlet
1 error
Pourquoi cette erreur ou est le probleme ?
__________________________
triple s
Je crois que ton problème vient que GenericServlet est une classe abstraite. Toutes les classes filles de genericServlet doivent implémenter la méthode Service, qui est abstraite.
En fait, quand tu appelleras ta servlet via l'url qui va bien, la méthode Service sera automatiquement appelée.
Si tu souhaite juste faire un site web en J2EE, je te conseillerais plutôt d'utiliser HttpServlet comme héritage, elle est certainement plus adaptée au protocole http.
Moi je fais ça depuis 2 mois pour mon stage, mais on utilise pas les mêmes méthodes que toi, on utilise le framework struts pour les servlet et les JSP, et on utilise hibernate pour gérer la persistance des objets en base de données.
Hélas je n'ai pas encore une bonne vision de ce qu'est J2EE...
__________________________ Eoliennes et informatique sur freresguizmo
L'utilisation de frameworks tel que struts et hibernate permet d'appliquer le principe de la découpe MVC . Le code est de cette façon bien plus lisible et surtout réutilisable ! .
Bien sur , il n'existe pas que ces frameworks : jsf , icefaces , springs etc..
J'espère bigguiz que tu pourras passer assez rapidement à " l'étape supérieur " et découvrir toutes les joies que J2EE nous offre ;).
__________________________
La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : rien ne fonctionne et personne ne sait pourquoi...