IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GWT et Vaadin Java Discussion :

Deploiement Tomcat 5.5: servlet marche pas


Sujet :

GWT et Vaadin Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté Avatar de Torg666
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 230
    Par défaut Deploiement Tomcat 5.5: servlet marche pas
    Bonjour,
    Voila à la suite de cette discution j'ai voulu tester le deploiement de mon application sous tomcat.
    Et là problème, il semble que ma servlet ne se lance pas...
    Pour le mettre en evidence, je lui est ajouter un entree dans mon logger et rien ne se passe...

    J'ai forcement oublié de configurer quelque chose mais je dois avouer pas trouver quoi... quelqu'un aurai une idée?
    Code de la servlet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    package sncfinfogerance.server;
     
    import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    import java.io.Closeable;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
     
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    @SuppressWarnings("serial")
    public class FileServlet extends HttpServlet {
     
    	private static final int DEFAULT_BUFFER_SIZE = 10240;
    	private String filePath = null;
    	private String xmlFile = null;
     
    	public void init() throws ServletException {
    //un fois deployé, ca me devrai le repertoire d'install de tomcat
    		this.setFilePath(System.getProperty("user.dir"));
    		InfogeranceRemoteServiceImpl.getLogError().info(this.getFilePath());
    	}
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		String requestedFile = request.getPathInfo();
     
    		this.setXmlFile(request.getParameter("file"));
    		if (requestedFile == null) {
    			response.sendError(HttpServletResponse.SC_NOT_FOUND);
    			return;
    		}
    		File file = new File(this.getFilePath(), this.getXmlFile());
    		if (!file.exists()) {
    			response.sendError(HttpServletResponse.SC_NOT_FOUND);
    			return;
    		}
    		String contentType = getServletContext().getMimeType(file.getName());
    		if (contentType == null) {
    			contentType = "application/octet-stream";
    		}
    		response.reset();
    		response.setBufferSize(DEFAULT_BUFFER_SIZE);
    		response.setContentType(contentType);
    		response.setContentLength((int)file.length());
    		response.setHeader("Content-Disposition", "attachment; filename=\"" + file.getName() + "\"");
    		BufferedInputStream input = null;
    		BufferedOutputStream output = null;
    		try {
    			input = new BufferedInputStream(new FileInputStream(file), DEFAULT_BUFFER_SIZE);
    			output = new BufferedOutputStream(response.getOutputStream(), DEFAULT_BUFFER_SIZE);
    			byte[] buffer = new byte[DEFAULT_BUFFER_SIZE];
    			int length;
    			while ((length = input.read(buffer)) > 0) {
    				output.write(buffer, 0, length);
    			}
    		} finally {
    			close(output);
    			close(input);
    		}
    	}
    	private static void close(Closeable resource) {
    		if (resource != null) {
    			try {
    				resource.close();
    			} catch (IOException ioe) {
    				InfogeranceRemoteServiceImpl.getLogError().severe("FileServlet: Close: " + resource.toString() + " ,\n" + ioe.toString());
    			}
    		}
    	}
    	public String getFilePath() {
    		return filePath;
    	}
    	public void setFilePath(String filePath) {
    		this.filePath = filePath;
    	}
    	public String getXmlFile() {
    		return xmlFile;
    	}
    	public void setXmlFile(String xmlFile) {
    		this.xmlFile = xmlFile;
    	}
    }
    Bien entendu, aucune trace d'un disfonctionnement dans les log de Tomcat... ca aurai été trop facile.
    Merci d'avance,


  2. #2
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Par défaut
    L'as tu ajouté dans ton descripteur de déploiement ?
    Dans ton web.xml si tu préfères ?

  3. #3
    Membre expérimenté Avatar de Torg666
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 230
    Par défaut
    J'ai trouvé le problème qui venait du code (qui marche biensur en hosted mode):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    String requestedFile = request.getPathInfo();
     
    if (requestedFile == null) {
    			response.sendError(HttpServletResponse.SC_NOT_FOUND);
    			return;
    		}
    request.getPathInfo() renvoyé null un fois hebergé sous Tomcat.
    Je dois avouer que j'ai toujours pas saisi a quoi ca sert. (d'ailleur je l'ai viré et ca marche maintenant....).

    Etant novice sur les servlets, j'ai largement pompé sans suffisament approfondir.

Discussions similaires

  1. struts et tomcat 5 sur suse9? marche pas?
    Par gregounet dans le forum Tomcat et TomEE
    Réponses: 6
    Dernier message: 21/03/2007, 11h45
  2. Ma servlet ne marche pas
    Par Bob_67 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 26/07/2006, 13h38
  3. [TOMCAT + APACHE] Couplage apache + tomcat + mod_jk qui ne marche pas
    Par polnioumane dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 09/06/2006, 14h13
  4. [JAVA][SERVLET][TOMCAT][COOKIE] addCookie(cookie) marche pas
    Par nickylarson34 dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 08/08/2005, 17h58
  5. Marche pas sous tomcat
    Par jeromejanson dans le forum Applets
    Réponses: 3
    Dernier message: 21/06/2005, 12h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo