Précédent   Forum du club des développeurs et IT Pro > Java > Développement Web en Java > Servlets/JSP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 19/08/2010, 13h43   #1
teto
Candidat au titre de Membre du Club
 
Inscription : octobre 2003
Messages : 33
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 33
Points : 13
Points : 13
Envoyer un message via MSN à teto
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:
Citation:
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:
Citation:
<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:
Citation:
<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.
teto est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2010, 14h24   #2
tchize_
Expert Confirmé Sénior
 
Avatar de tchize_
 
Homme
Responsable de service informatique
Inscription : avril 2007
Messages : 18 280
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : Belgique

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

Informations forums :
Inscription : avril 2007
Messages : 18 280
Points : 32 756
Points : 32 756
Envoyer un message via MSN à tchize_ Envoyer un message via Skype™ à tchize_
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

Citation:

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...

Citation:
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)

Citation:
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"
Citation:
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é.
__________________
⥀⥁ Чиз 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.
tchize_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/08/2010, 12h20   #3
teto
Candidat au titre de Membre du Club
 
Inscription : octobre 2003
Messages : 33
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 33
Points : 13
Points : 13
Envoyer un message via MSN à teto
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
teto est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/08/2010, 12h29   #4
tchize_
Expert Confirmé Sénior
 
Avatar de tchize_
 
Homme
Responsable de service informatique
Inscription : avril 2007
Messages : 18 280
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : Belgique

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

Informations forums :
Inscription : avril 2007
Messages : 18 280
Points : 32 756
Points : 32 756
Envoyer un message via MSN à tchize_ Envoyer un message via Skype™ à tchize_
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.

Citation:
-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
Citation:
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.
__________________
⥀⥁ Чиз 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.
tchize_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2010, 17h47   #5
teto
Candidat au titre de Membre du Club
 
Inscription : octobre 2003
Messages : 33
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 33
Points : 13
Points : 13
Envoyer un message via MSN à teto
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:
Citation:
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.
teto est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2010, 18h06   #6
teto
Candidat au titre de Membre du Club
 
Inscription : octobre 2003
Messages : 33
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 33
Points : 13
Points : 13
Envoyer un message via MSN à teto
On oublie le post précédent, j'ai relancé tomcat et ca a marché, je vais ptet pvr commencer à développer dessus ^^
teto est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 21h51.


 
 
 
 
Partenaires

Hébergement Web