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

Weblogic Java Discussion :

Weblogic vs Tomcat


Sujet :

Weblogic Java

  1. #1
    Candidat au Club
    Inscrit en
    Février 2011
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Weblogic vs Tomcat
    Bonjour à tous,

    Depuis un moment je galère à faire exécuter une application "très simple" sous weblogic alors qu'elle marche à merveille sous tomcat.

    Il s'agit d'une application qui Web qui utilise un filter que j'ai développé moi même pour purifier HTML en sortie.

    Voici le code du filter:


    ============== Class : SimpleFilter
    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
    package mp.mpfilter.html;
     
    import java.io.CharArrayWriter;
    import java.io.IOException;
    import java.io.PrintWriter;
     
    import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletOutputStream;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpServletResponseWrapper;
     
    public class SimpleFilter implements Filter {
      protected FilterConfig config;
     
      public void init(FilterConfig config) throws ServletException {
        this.config = config;
      }
     
      public void destroy() {
      }
     
      public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
          throws ServletException, IOException {
     
        ServletResponse newResponse = response;
        HttpServletRequest rq = (HttpServletRequest) request;
     
     
          newResponse = new CharResponseWrapper((HttpServletResponse) response);
     
        chain.doFilter(request, newResponse);
     
     
          String text = newResponse.toString();
          System.out.println("from filter: " + text);
          response.getWriter().write("filter :" + text);
          if (text != null) {
            text = text.toUpperCase();
            response.getWriter().write(text);
          }
     
      }
    }
    ============== Class : CharResponseWrapper

    p
    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
    ackage mp.mpfilter.html;
     
    import javax.servlet.*;
    import javax.servlet.http.HttpServletResponseWrapper;
    import javax.servlet.http.HttpServletResponse;
    import java.io.*;
     
    class CharResponseWrapper extends HttpServletResponseWrapper {
      protected CharArrayWriter charWriter;
     
      protected PrintWriter writer;
     
      protected boolean getOutputStreamCalled;
     
      protected boolean getWriterCalled;
     
      public CharResponseWrapper(HttpServletResponse response) {
        super(response);
        charWriter = new CharArrayWriter();
      }
     
      public ServletOutputStream getOutputStream() throws IOException {
        if (getWriterCalled) {
          throw new IllegalStateException("getWriter already called");
        }
     
        getOutputStreamCalled = true;
        return super.getOutputStream();
      }
     
      public PrintWriter getWriter() throws IOException {
        if (writer != null) {
          return writer;
        }
        if (getOutputStreamCalled) {
          throw new IllegalStateException("getOutputStream already called");
        }
        getWriterCalled = true;
        writer = new PrintWriter(charWriter);
        return writer;
      }
     
      public String toString() {
        String s = null;
     
        if (writer != null) {
          s = charWriter.toString();
        }
        return s;
      }
    }
    ============ POM (les jar utilisés) :
    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
      <dependency>
                <groupId>tomcat</groupId>
                <artifactId>servlet-api</artifactId>
                <version>5.5.23</version>
            </dependency>
            <dependency>
                <groupId>commons-pool</groupId>
                <artifactId>commons-pool</artifactId>
                <version>1.4</version>
            </dependency>
            <dependency>
                <groupId>commons-configuration</groupId>
                <artifactId>commons-configuration</artifactId>
                <version>1.6</version>
            </dependency>



    Le problème est dans cette instruction "text = newResponse.toString();" car sous tomcat elle retourne HTML affiché dans le navigateur.

    Malheureusement, cette instruction retourne la valeur "null" sous weblogic?

    Quelqu'un peut-il m'aider? Je serai très reconnaissant.


    YBDEV

  2. #2
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Points : 3 736
    Points
    3 736
    Par défaut
    ca va etre null si le serveur genere une 304 (not modified)
    c'est peut etre normal en fait

  3. #3
    Candidat au Club
    Inscrit en
    Février 2011
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Merci, oui, mais ça m'aide en rien.

    En fait, il y a aucune erreur affichée dans weblogic! Car le contenu est bien affiché dans le navigateur. Par contre comme je l'ai expliqué c'est la dite instruction qui retourne un contenu différent. dans tomcat elle rencoit le contenu html affiché, mais dans weblogic "null".

    Il se peut que c'est la version du JVM, dans tomcat c'est Sun Java 6 par contre dans weblogic c'est la jirokit 27.

    Enfin je n'ai pas trouvé la solution...

    Merci c'est une personne pourra m'orienter ...

    Bien cordialement

  4. #4
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Points : 3 736
    Points
    3 736
    Par défaut
    et comme je te dis, ca peut etre null parce que le serveur renvoi 304 et pas 200. (c'est tout a fait normal). Et tu peux tout a fait avoir une difference de comportement entre les deu serveurs.

    il faut que tu verifies que sous weblo, tu forces bien le refresh (shift reload) de la page.

    De maniere générale, il faut traiter le cas text ==null car il est tout a fait possible et normal

  5. #5
    Candidat au Club
    Inscrit en
    Février 2011
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    D'une manière générale, et d'après votre réponse, une application qui exploite un filtre très simple fonctionne correctement sous tomcat alors qu'elle ne fonctionne pas sous weblogic parait normal?

    En fait, ce que je voudrait, c'est avoir le même résultat que ce soir sous tomcat ou weblogic?

    Logiquement, une application WAR simple ne faisant pas appel eu EJB doit fonctionner sous tomcat et weblogic.

    Je vous remercie pour votre aide, mais quelqu'un aurait la gentillesse de tester le code, je peux vous l'envoyer par mail si vous le souhaitiez?

    voici mon mail : yk_bey@hotmail.com

    Bien cordialement

  6. #6
    Membre régulier
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2003
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 145
    Points : 100
    Points
    100
    Par défaut
    Les jars utilisés sont les mêmes de part et d'autre ?
    Et le JDK, même version ?
    NiGhMa

Discussions similaires

  1. [Info] Tomcat vs WebLogic
    Par estampille dans le forum Tomcat et TomEE
    Réponses: 7
    Dernier message: 17/03/2016, 09h32
  2. Pb "Tiles" entre Tomcat et Weblogic
    Par mariemor64 dans le forum Weblogic
    Réponses: 5
    Dernier message: 14/02/2011, 09h26
  3. migration de weblogic vers tomcat 6
    Par amine84 dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 30/09/2009, 14h51
  4. Migration Tomcat vers WebLogic
    Par slyv dans le forum Weblogic
    Réponses: 2
    Dernier message: 16/04/2007, 16h03
  5. Tomcat vs Weblogic
    Par hicham95 dans le forum Struts 1
    Réponses: 4
    Dernier message: 15/01/2007, 08h57

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