Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 6 sur 6
  1. #1
    Candidat au titre de Membre du Club
    Inscrit en
    octobre 2003
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : octobre 2003
    Messages : 33
    Points : 13
    Points
    13

    Par défaut Impossible d'etablir une connexion avec le serveur à l'adresse localhost:8443"

    Bonjour,


    Dans le cadre d'un stage, je dois améliorer un servlet existant (j'ai découvert le mot servlet hier, il s'agit de mon premier projet java, autrement j'ai l'habitude de bidouiller apache,programmer en php/c++).

    Mon 1er objectif est donc de tester en local le servlet.

    J'ai donc installé tomcat 6 (apache tourne via wampserver) en service windows.

    Ma servlet se trouve dans le dossier "C:\tomcat\webapps\redemo". Quand je tape dans mon navigateur "http://localhost:8080/redemo/", firefox affiche:
    Firefox ne peut établir de connexion avec le serveur à l'adresse localhost:8443.
    Je précise que l'accès aux pages http://localhost:8080/examples fonctionne parfaitement.

    J'imagine que la redirection vers le port 8443 est provoquée par cette ligne du server.xml:
    <Connector port="8080" protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="8443" />
    mais je ne sais pas comment résoudre ce pb.
    Dans mon fichier redemo/web-inf/web.xml, j'ai trouvé ces qques lignes qui ressemblent à une connexion à une db:
    <resource-ref>
    <description>DB Connection</description>
    <res-ref-name>jdbc/cmredemo</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    Apparemment dans C:\tomcat\conf\Catalina, j'ai un fichier redemo.xml qui s'est créé:
    Code :
    1
    2
    3
    4
    5
     
      <?xml version="1.0" encoding="UTF-8" ?> 
    - <Context>
      <Resource name="jdbc/cmredemo" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="cmd01" password="cmd007" driverClassName="org.postgresql.Driver" url="jdbc:postgresql://cmdatabase:15432/cmd01?useUnicode=true&characterEncoding=utf-8" /> 
      </Context>
    Du coup j'ai installé postgresql mais apres je suis un peu perdu quand à la démarche à suivre (1ere fois que j'utilise postgresql). Le probleme vient-il de mon server.xml ? faut-il que j'installe des composants jdbc ?

    J'ai passé pas mal de tps déjà dessus et j'espère que des gens plus expérimentés pourront me donner qques pistes.

    Par avance merci

    Nb: je suis à disposition pr de plus amples informations, je dév sous win7.

  2. #2
    Expert Confirmé Sénior
    Avatar de tchize_
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    avril 2007
    Messages
    21 164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Service public

    Informations forums :
    Inscription : avril 2007
    Messages : 21 164
    Points : 34 807
    Points
    34 807

    Par défaut

    Citation Envoyé par teto Voir le message
    j'ai découvert le mot servlet hier, il s'agit de mon premier projet java,.
    Sort les rames, parce que tu va souffrir, c'est un peu comme devoir réussir à servir un repas gastronomiques pour 25 personnes endéans la demi-heure en découvrant aujourd'hui ce qu'est une cuisinière . JavaEE, c'est "VASTE". Si en plus t'a repris un projet mal foutu, tu as gagné le supplément "il n'y a pas d'étiquette sur aucun produit dans aucune des armoire et on a volé le livre de recettes" :p


    Ma servlet se trouve dans le dossier "C:\tomcat\webapps\redemo".
    C'est la webapp qui se trouve là. La servlet, c'est juste une classe java, qui se trouve dans la webapp, quelque part dans WEB-INF/classes ou dans WEB-INF/lib. Utilisons les bons termes directement...

    Quand je tape dans mon navigateur "http://localhost:8080/redemo/", firefox affiche:
    Ta servlet a un security constraint qui exige la confidentialité des données et probablement aussi l'authentification (c'est configuré dans web.xml), ce qui amène tomcat à te rediriger vers sa page SSL qui... n'est pas configurée par défaut. La t'as deux possibilités
    1) la plus simple: tu va dans le web.xml et tu vire CONFIDENTIAL dans le TRANSPORT-GUARANTEE, comme ça plus de SSL. Pas oublier de remettre le SSL en prod sinon aie aie aie
    2) tu configure le SSL dans ton tomcat local (créer un certificat, l'installer et tout le bordel, y a des docs spécifique, bon amusement)

    Dans mon fichier redemo/web-inf/web.xml, j'ai trouvé ces qques lignes qui ressemblent à une connexion à une db:
    indirectement, ca dit que ton application va utiliser une datasource appelée
    "jdbc/cmredemo"
    Apparemment dans C:\tomcat\conf\Catalina, j'ai un fichier redemo.xml qui s'est créé:
    Code :
    1
    2
    3
    4
    5
     
      <?xml version="1.0" encoding="UTF-8" ?> 
    - <Context>
      <Resource name="jdbc/cmredemo" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="cmd01" password="cmd007" driverClassName="org.postgresql.Driver" url="jdbc:postgresql://cmdatabase:15432/cmd01?useUnicode=true&characterEncoding=utf-8" /> 
      </Context>
    C'est la configuratin de la datasource en question. tomcat crée automatiquement ce fichier en copiant le contenu de META-INF/context.xml de ta webapp. Maintenant, comme dit plus haut, t'en es pas encore là Quand t'aura des erreurs dûes à la datasource, t'aura pas de doutes, ce sera clairement indiqué.
    Tchize (Чиз) faq java, cours java, javadoc. Pensez à et
    Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir.

  3. #3
    Candidat au titre de Membre du Club
    Inscrit en
    octobre 2003
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : octobre 2003
    Messages : 33
    Points : 13
    Points
    13

    Par défaut

    Merci bcp pour ton message qui m'a offert pas mal de pistes mais je galère encore (bcp moins certes).

    Code :
    1
    2
    1) la plus simple: tu va dans le web.xml et tu vire CONFIDENTIAL dans le TRANSPORT-GUARANTEE, comme ça plus de SSL. Pas oublier de remettre le SSL en prod sinon aie aie aie
    2) tu configure le SSL dans ton tomcat local (créer un certificat, l'installer et tout le bordel, y a des docs spécifique, bon amusement)
    Pour l'instant j'ai opté pour la version 1. Je verrai plus tard si j'ai le temps pour la version 2 (ce sera un autre topic ^^)

    Du coup mon navigateur me demande username et mot de passe (mode BASIC, c'est normal d'apres ce que j'ai lu sur le web).
    Mais je n'arrive pas à me connecter car je ne sais pas ou il va chercher les identifiants (.htaccess, tomcat-users.xml ). Est-ce qu'il faut que ca corresponde à certains roles ? (ici une partie de mon web.xml )
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    	<login-config>
    		<auth-method>BASIC</auth-method>
    		<realm-name>Campaign Master's Authenticator</realm-name>
    		<!--ajout perso <realm-name>admin</realm-name>-->
    	</login-config>
     
    	<security-role>
    		<description>Basic access right</description>
    		<role-name>REDemo</role-name>
    	</security-role>
    	<security-role>
    		<description>Allow sending messages</description>
    		<role-name>REDemoHttpGet</role-name>
    	</security-role>
    -Vis-à vis du context.xml:
    Pk tomcat copie mon context.xml dans un de ces dossiers ? Si je modifie celui dans META-INF/ , ca modifie celui dans catalina/ ? et inversement ? ( en gros lequel faut-il qu je modifie)

    Je le remets mon context.xml (password modifie)
    Code :
    1
    2
    3
    4
    5
     
      <?xml version="1.0" encoding="UTF-8" ?> 
    - <Context>
      <Resource name="jdbc/cmredemo" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="cmd01" password="monmdp" driverClassName="org.postgresql.Driver" url="jdbc:postgresql://cmdatabase:15432/cmd01?useUnicode=true&characterEncoding=utf-8" /> 
      </Context>
    D'apres ca:
    http://tomcat.apache.org/tomcat-6.0-...tml#PostgreSQL
    cmdatabase est l'hote (je l'ai remplacé par localhost en local), username et password sont les identifiants de connexion à la db postgresql,.

    15432 le port d'écoute de postgresql ? (je l'ai changé dans la config de postgres car c'est pas le port par défaut).
    A la fin de l'url "cmd01?useUnicode=true&characterEncoding=utf-8", cmd01 designe le nom de la table ? ou bien c'est un chemin vers un fichier ? la query string est traitée par qui ?

    Je suis conscient que mon post est long dsl

  4. #4
    Expert Confirmé Sénior
    Avatar de tchize_
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    avril 2007
    Messages
    21 164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Service public

    Informations forums :
    Inscription : avril 2007
    Messages : 21 164
    Points : 34 807
    Points
    34 807

    Par défaut

    Citation Envoyé par teto Voir le message
    Mais je n'arrive pas à me connecter car je ne sais pas ou il va chercher les identifiants (.htaccess, tomcat-users.xml ).
    Il va les chercher dans le realm, qui est configuré via uh balise <realm> présente dans le context.xml. Un realm peut être base sur du ldap, un fichier brut, une base de donnée, une domaine windows, etc. http://tomcat.apache.org/tomcat-5.5-...alm-howto.html

    Les roles aussi sont récupérés par le realm une fois l'authentification faite. Les droits d'accès sont effectivement gérés par des roles.

    -Vis-à vis du context.xml:
    Pk tomcat copie mon context.xml dans un de ces dossiers ? Si je modifie celui dans META-INF/ , ca modifie celui dans catalina/ ? et inversement ? ( en gros lequel faut-il qu je modifie)
    si tu modifie celui de catalina, c'est certain, il est pris en compte. Car c'est le ficheir que tomcat doit utiliser. Maintenant, tomcat a une "facilité" qui permet d'éviter de devoir manuellement aller y placer ce fichier, en le fournissant dans le war, via le META-INF. C'est pour ça qu'il y a copie.

    Celui du META-INF est donc copié lors du déploiement d'un nouveau war. Si le tocmat est configuré pour surveiller aussi les ressources de la webapp à la recherche de changements, il fera aussi la copie à chaque changement dans le META-INF/ Suffit de tester pour savoir si ça a été pris en compte
    A la fin de l'url "cmd01?useUnicode=true&characterEncoding=utf-8", cmd01 designe le nom de la table ? ou bien c'est un chemin vers un fichier ? la query string est traitée par qui ?
    La string est traitée par le driver psotgresql chaque driver a ses propres paramètres. Ici, cmd01 est le nom de la base de données à utiliser dans le serveur de base de données.
    Tchize (Чиз) faq java, cours java, javadoc. Pensez à et
    Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir.

  5. #5
    Candidat au titre de Membre du Club
    Inscrit en
    octobre 2003
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : octobre 2003
    Messages : 33
    Points : 13
    Points
    13

    Par défaut

    J'ai essayé de configurer l'accès à jdbc mais au final j'ai grugé en donnant accès au bon rôle (il me semble) via le tomcat-users.xml ce qui fait qu'apres 4 jours j'ai pu avoir accès à l'index.html Hourra ! ( bon je vous rassure je bosse sur d'autres trucs à côté ).

    Evidemment j'ai de nouveaux pb: quand je clique sur le lien (au départ relatif mais que j'ai mis en absolu puisque sur certains forums ca paraissait etre la source du pb): http://localhost:8080/redemo/createAgency.view j'ai le message d'erreur 404:
    Servlet NavigationServlet n'est pas disponible.
    alors que j'ai ce mapping défini dans mon web.xml est que j'ai verifie plusieurs fois
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    	<servlet>
    		<servlet-name>NavigationServlet</servlet-name>
    		<servlet-class>com.mobads.cm.redemo.servlets.NavigationServlet</servlet-class>
    	</servlet>
    	<servlet-mapping>
    		<servlet-name>NavigationServlet</servlet-name>
    		<url-pattern>*.view</url-pattern>
    	</servlet-mapping>
    et que le Servlet NavigationServlet est bien disponible dans ce dossier (copier/coller de l'explorateur)
    Code :
    1
    2
     
    C:\Tomcat\webapps\redemo\WEB-INF\classes\com\mobads\cm\redemo\servlets
    J'imagine que c'est une directive à changer qque part ?
    Encore merci pr ton aide.

  6. #6
    Candidat au titre de Membre du Club
    Inscrit en
    octobre 2003
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : octobre 2003
    Messages : 33
    Points : 13
    Points
    13

    Par défaut

    On oublie le post précédent, j'ai relancé tomcat et ca a marché, je vais ptet pvr commencer à développer dessus ^^

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •