Probleme de SERVLET - Java - Programmation
Marsh Posté le 20-02-2007 à 14:29:22
Tes url-patern ne sont pas bons
Code :
|
Marsh Posté le 22-02-2007 à 09:49:35
Bonjour,
ça fait deux jours que je cherche une solution à ce genre de problème,
je le même message d'erreur
voici le code de ma servlet :
---------- DBTest.java------------------
package pac;
import java.io.*;
import java.sql.*;
import javax.naming.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.sql.*;
public class DBTest extends HttpServlet {
private DataSource ds; //la source de données
Connection con=null;
Statement s=null;
ResultSet rs=null;
protected void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException {
response.setContentType("text/html" );
PrintWriter out = response.getWriter();
out.println("<html><head></head>" );
out.println("<body>" );
try {
//récupération de la source de donnée
Context initCtx = new InitialContext();
Context envCtx=(Context)initCtx.lookup("java:comp/env" );
ds = (DataSource) envCtx.lookup("java:comp/env/jdbc/TestDB" );
//récupération de la Connection depuis le DataSource
con = ds.getConnection();
s = con.createStatement();
rs = s.executeQuery("SELECT * FROM identifiant" );
while (rs.next()) {
out.println(rs.getString(1) + " " );
out.println(rs.getString(2) + "<br/>" );
out.println(rs.getString(3) + "<br>" );
}
} catch (SQLException e) {
response.sendError(500, "Ô Exception sur l'accès à la BDD " + e);
}catch (Exception e) {
throw new UnavailableException(e.getMessage());
}finally {
if (rs != null)
{
try {
rs.close();
} catch (SQLException e) {}
rs = null;
}
if (s != null) {
try {
s.close();
} catch (SQLException e) {}
s = null;
}
if (con != null) {
try {
con.close();
} catch (SQLException e) {}
con = null;
}
}
out.println("</body>" );
out.println("</html>" );
out.close();
}
}
le code de server.xml:
--------------server.xml--------------------
<Context path="/test" docBase="test" debug="5" reloadable="true" crossContext="true">
<Resource
name="jdbc/TestDB"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.commons.dbcp.BasicDataSourceFactory"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/Elipse?autoReconnect=true"
username="nom"
password="motdepasse"/>
</Context>
et le fichier web.xml:
------------web.xml-----------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<display-name>TestTomcat</display-name>
<servlet>
<servlet-name>DBTest</servlet-name>
<servlet-class>pac.DBTest</servlet-class>
</servlet>
<servlet>
<servlet-name>Oups</servlet-name>
<servlet-class>TestServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>servlet2</servlet-name>
<servlet-class>servletTraitement</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DBTest</servlet-name>
<url-pattern>/DBTest</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Oups</servlet-name>
<url-pattern>/Oups</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>servlet2</servlet-name>
<url-pattern>/servlet2</url-pattern>
</servlet-mapping>
<Resource-ref>
<description>reference a la ressource BDD pour le pool</description>
<res-ref-name>jdbc/TestDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</Resource-ref>
</web-app>
sachant que j'ai crée le rep meta-inf sous la racine et mis le fichier context.xml dedans puis le mettre sous le rep conf et j'ai toujours le même problème;
j'attend votre aide merci d'avance.
Marsh Posté le 22-02-2007 à 16:58:48
Bidem a écrit : Tes url-patern ne sont pas bons
|
Merci pour ta reponse, mais apparament c'est pas ca. ca ne fonctionne toujours pas. Vu que j'avais très peu de temps j'ai régler mon probleme en passant les valeurs en pramètre.
Dès que j'ai 5 minutes je me repenche sur ce probleme.
Marsh Posté le 22-02-2007 à 17:04:46
C'est parce que tu n'utilises pas les bonnes servlets...
Spoiler : |
...hygiéniques
Marsh Posté le 28-02-2007 à 10:35:50
si, j'utilise les bonnes, et la preuve quand je vide la servlet DBTest et je ne laise q'un simple affichage comme out.println("bonjour" );
ça passe contrairement à l'origine.
Marsh Posté le 01-03-2007 à 16:58:34
Citation : package pac; |
Citation : <servlet> |
Marsh Posté le 19-02-2007 à 16:55:13
Salut,
Voila j'ai un ptit soucis, je créer un servlet qui dois ètre appelé par differente application. Donc je voudrais que chaque application appel la mème classe avec un nom de servlet different, afin que chaque site est sa propre config. Donc je me suis dis que je pourrais peux ètre faire ça avec le fichier web.xml de mon context : pour cela dans ce fichier j'ai creer le fichier suivant :
Donc appli 1 appel : https://host:port/pay_name/servlet1
Donc appli 2 appel : https://host:port/pay_name/servlet2
Mon probleme c'est que quand j'appelle le servlet2 ben j'ai une erreur 404 :
Etat HTTP 404 - /pay_name/servlet2
type Rapport d'état
message /pay_name/servlet2
description La ressource demandée (/pay_name/servlet2) n'est pas disponible.
J'espère que j'ai ecris clairement.
Merci de votre aide.
Message édité par DEns91 le 19-02-2007 à 16:57:41