Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1962 connectés 

  FORUM HardWare.fr
  Programmation
  Java

   pb servlet java pour alivePdf

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

pb servlet java pour alivePdf

n°1946259
achim
Posté le 01-12-2009 à 13:43:36  profilanswer
 

Bonjour,
j'essaie d'utiliser alivePdf pour ... générer des pdfs, eh oui, ça marche très bien avec le script php fourni, par contre je me casse les dents depuis plusieurs jours en essayant de créer une servlet java... Je développe sous Eclipse Ganymède, avec Tomcat 6. Je n'ai pas de problème pour générer mon fichier WAR, ni pour le déployer via l'interface Manager de Tomcat, par contre, quand j'essaie de l'atteindre, j'ai le message d'erreur suivant: "HTTP Status 404 - /CreatePDFServlet/
type Status report
message /CreatePDFServlet/
description The requested resource (/CreatePDFServlet/) is not available."
Je ne sais vraiment pas d'où vient cette erreur. Je suppose que la source en est mon web.xml, mais je suis total nioubie en java, et je ne vois pas où est l'erreur.
 
Merci par avance si quelqu'un peut m'aider!
Cyrill

mood
Publicité
Posté le 01-12-2009 à 13:43:36  profilanswer
 

n°1946276
Bidem
Posté le 01-12-2009 à 14:36:51  profilanswer
 

Dans le web.xml, tu dois définir ta servlet :

Code :
  1. <servlet>
  2.   <servlet-name>createPDFServlet</servlet-name>
  3.   <description>création de PDF</description>
  4.   <servlet-class>fr.toto.mopackage.CreatePDFServlet</servlet-class>
  5. </servlet>
 

Ensuite tu dois définir un mapping qui fait le lien entre l'url appelée et la servlet définie.

Code :
  1. <servlet-mapping>
  2.   <servlet-name>createPDFServlet</servlet-name>
  3.   <url-pattern>/CreatePDFServlet</url-pattern>
  4. </servlet-mapping>



Message édité par Bidem le 01-12-2009 à 14:37:19
n°1946280
achim
Posté le 01-12-2009 à 14:54:27  profilanswer
 

Merci,
mon web.xml est fait ainsi:

Code :
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <!DOCTYPE web-app
  3. PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
  4. "http://java.sun.com/dtd/web-app_2_3.dtd">
  5. <web-app>
  6. <display-name>CreatePDFServlet</display-name>
  7. <description>
  8. </description>
  9. <!-- Define servlets that are included in the example application -->
  10. <servlet>
  11. <servlet-name>
  12. CreatePDFServlet
  13. </servlet-name>
  14. <servlet-class>
  15. com.CreatePDFServlet
  16. </servlet-class>
  17. </servlet>
  18. <servlet-mapping>
  19. <servlet-name>
  20. CreatePDFServlet
  21. </servlet-name>
  22. <url-pattern>
  23. /CreatePDFServlet
  24. </url-pattern>
  25. </servlet-mapping>
  26. <servlet-mapping>
  27. <servlet-name>invoker</servlet-name>
  28. <url-pattern>/servlet/*</url-pattern>
  29. </servlet-mapping>
  30. <!-- Security roles referenced by this web application -->
  31. <security-role>
  32. <role-name>role1</role-name>
  33. </security-role>
  34. <security-role>
  35. <role-name>tomcat</role-name>
  36. </security-role>
  37. </web-app>


Je pense que le pb vient de ce fichier, mais je ne vois pas d'où...

n°1946283
Bidem
Posté le 01-12-2009 à 15:00:22  profilanswer
 

Et elle ressemble à quoi l'url que tu essayes ?
http://localhost:8080/moncontexte/CreatePDFServlet
ou
http://localhost:8080/CreatePDFServlet ?
 
PS : tu veux aussi virer le mapping sur la servlet "invoker" qui n'est plus disponible par défaut depuis Tomcat 5 ou 6

n°1946286
achim
Posté le 01-12-2009 à 15:03:27  profilanswer
 
n°1946408
Bidem
Posté le 01-12-2009 à 19:06:07  profilanswer
 

Là il te manque le contexte de la webapp à moins que tu ais défini explicitement / comme racine

n°1946540
achim
Posté le 02-12-2009 à 10:56:49  profilanswer
 

Bidem a écrit :

Là il te manque le contexte de la webapp à moins que tu ais défini explicitement / comme racine


Merci,
mais saurais-tu comment je dois le définir dans mon web.xml? Ou dans mon adresse?

n°1946555
Bidem
Posté le 02-12-2009 à 11:52:33  profilanswer
 

Dans Eclipse, dans la perspective Server si tu "ouvres" ton serveur (double clic ou F3), ça affiche l'éditeur de conf du serveur.
 
L'onglet "Modules" permet de gérer les différents contexte (webapps) lancés par ce serveur.
 
Fait un Edit... et change le Path à /

n°1946563
achim
Posté le 02-12-2009 à 12:10:54  profilanswer
 

Bidem a écrit :

Dans Eclipse, dans la perspective Server si tu "ouvres" ton serveur (double clic ou F3), ça affiche l'éditeur de conf du serveur.
 
L'onglet "Modules" permet de gérer les différents contexte (webapps) lancés par ce serveur.
 
Fait un Edit... et change le Path à /


 
Merci, mais je ne trouve pas de perspective "server" dans Eclipse?

n°1946636
Bidem
Posté le 02-12-2009 à 14:56:54  profilanswer
 

Citation :

Je développe sous Eclipse Ganymède, avec Tomcat 6. Je n'ai pas de problème pour générer mon fichier WAR, ni pour le déployer via l'interface Manager de Tomcat

 

Au temps pour moi, je pensais que tu lançais ton tomcat directement dans Eclipse.

 

Dans le manager de tomcat, tu dois voir le nom du contexte (c'est le nom de ton war normalement)

 

Ajoute le contexte dans l'url que tu testes, ça devrait mieux marcher.

 

PS un peu de doc à lire : Tomcat : Configuration du contexte

Message cité 1 fois
Message édité par Bidem le 02-12-2009 à 14:58:26
mood
Publicité
Posté le 02-12-2009 à 14:56:54  profilanswer
 

n°1946642
achim
Posté le 02-12-2009 à 15:07:24  profilanswer
 

Bidem a écrit :

Citation :

Je développe sous Eclipse Ganymède, avec Tomcat 6. Je n'ai pas de problème pour générer mon fichier WAR, ni pour le déployer via l'interface Manager de Tomcat


 
Au temps pour moi, je pensais que tu lançais ton tomcat directement dans Eclipse.
 
Dans le manager de tomcat, tu dois voir le nom du contexte (c'est le nom de ton war normalement)
 
Ajoute le contexte dans l'url que tu testes, ça devrait mieux marcher.
 
PS un peu de doc à lire : Tomcat : Configuration du contexte


 
En fait, depuis Eclipse, j'exporte mon WAR vers le bureau. Puis depuis Tomcat je le sélectionne et fais "déployer". Il apparait bien dans la liste, mais avec "running" à false, et si je fais "start", il me dit :  
   
FAIL - Application at context path /CreatePDFServlet could not be started
 

n°1946661
Bidem
Posté le 02-12-2009 à 15:30:13  profilanswer
 

Oulà, j'ai peur. Il s'appelle comment ton war ?

 

S'il s'appel CreatePDFServlet alors tu m'as enduis d'erreur depuis le début (je croyais bêtement que c'était une servlet)

 

Sinon, regarde dans le fichier <tomcat>/logs/catalina.out, il y des chances que tu ais des erreurs empéchant le démarage du contexte.

Message cité 1 fois
Message édité par Bidem le 02-12-2009 à 15:30:30
n°1946666
achim
Posté le 02-12-2009 à 15:37:32  profilanswer
 

Bidem a écrit :

Oulà, j'ai peur. Il s'appelle comment ton war ?

 

S'il s'appel CreatePDFServlet alors tu m'as enduis d'erreur depuis le début (je croyais bêtement que c'était une servlet)

 

Sinon, regarde dans le fichier <tomcat>/logs/catalina.out, il y des chances que tu ais des erreurs empéchant le démarage du contexte.

 

Mon WAR s'appelle bien CreatePDFServlet, c'est pas bon?
j'ai trouvé ça:
02/12/2009 03:05:07 م org.apache.catalina.startup.ContextConfig applicationWebConfig
SEVERE: Parse error in application web.xml file at jndi:/localhost/CreatePDFServlet/WEB-INF/web.xml
java.lang.IllegalArgumentException: Servlet mapping specifies an unknown servlet name invoker
pourtant mon web.xml me semble correct???
<?xml version="1.0" encoding="ISO-8859-1"?>

 

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

 

<display-name>CreatePDFServlet</display-name>
<description>

 

</description>

 

<!-- Define servlets that are included in the example application -->

 

<servlet>
<servlet-name>
CreatePDFServlet
</servlet-name>
<servlet-class>
com.CreatePDFServlet
</servlet-class>
</servlet>

 

<servlet-mapping>
<servlet-name>
CreatePDFServlet
</servlet-name>
<url-pattern>
/CreatePDFServlet
</url-pattern>
</servlet-mapping>

 

<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>

 

<!-- Security roles referenced by this web application -->
<security-role>
<role-name>role1</role-name>
</security-role>
<security-role>
<role-name>tomcat</role-name>
</security-role>

 

</web-app>


Message édité par achim le 02-12-2009 à 15:49:02
n°1946699
Bidem
Posté le 02-12-2009 à 16:44:43  profilanswer
 

Citation :

java.lang.IllegalArgumentException: Servlet mapping specifies an unknown servlet name invoker


Citation :

PS : tu veux aussi virer le mapping sur la servlet "invoker" qui n'est plus disponible par défaut depuis Tomcat 5 ou 6


Donc, c'est bien le mapping sur invoker qu'il faut virer.

 

Et comme tu as nommé ton appli de la même façon que ta servlet, l'url à appeler c'est
http://localhost:8080/CreatePDFServlet/CreatePDFServlet

 

Message cité 1 fois
Message édité par Bidem le 02-12-2009 à 16:46:56
n°1946701
achim
Posté le 02-12-2009 à 16:54:36  profilanswer
 

Bidem a écrit :

Citation :

java.lang.IllegalArgumentException: Servlet mapping specifies an unknown servlet name invoker


Citation :

PS : tu veux aussi virer le mapping sur la servlet "invoker" qui n'est plus disponible par défaut depuis Tomcat 5 ou 6


Donc, c'est bien le mapping sur invoker qu'il faut virer.

 

Et comme tu as nommé ton appli de la même façon que ta servlet, l'url à appeler c'est
http://localhost:8080/CreatePDFServlet/CreatePDFServlet

 


 

ok, merci.
J'ai viré ce mapping, désormais l'appli est démarrée dans le manager Tomcat.
Néanmoins j'ai toujours ce message d'erreur lorsque je clique dessus dans le manager: type Exception report

 

message

 

description The server encountered an internal error () that prevented it from fulfilling this request.

 

exception

 

java.lang.NegativeArraySizeException
 com.CreatePDFServlet.doGet(CreatePDFServlet.java:25)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

 

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.20 logs.


Message édité par achim le 02-12-2009 à 16:56:10
n°1946704
Bidem
Posté le 02-12-2009 à 17:12:45  profilanswer
 

Citation :

java.lang.NegativeArraySizeException
 com.CreatePDFServlet.doGet(CreatePDFServlet.java:25)


Lis avec ton doigt
 
Surement qu'à la ligne 25 de CreatePDFServlet.java tu créés un tableau en lui spécifiant une taille négative...

n°1946708
achim
Posté le 02-12-2009 à 17:33:48  profilanswer
 

Bidem a écrit :

Citation :

java.lang.NegativeArraySizeException
 com.CreatePDFServlet.doGet(CreatePDFServlet.java:25)


Lis avec ton doigt
 
Surement qu'à la ligne 25 de CreatePDFServlet.java tu créés un tableau en lui spécifiant une taille négative...


oui, j'ai bien compris... Le pb est désormais du côté de mon code ActionScript, qui ne doit pas envoyer à manger à l'appli, car ligne 25 je ne fais que récupérer les données binaires de mon fichier flash.
Encore merci pour ton aide précieuse!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

   pb servlet java pour alivePdf

 

Sujets relatifs
Problème de lecture de base de données SQLite (Java)a l'aide: creation d'un objet prix et un serveur en JAVA
[JAVA] GridLayout + BoxLes fichiers en Java
Java/jsp/servletservlet>ejb>jpa clé composée
générer des figures en metapost à partir de javaPHP5 / Serveur IIS : appel JAVA (
Cplex avec Java 
Plus de sujets relatifs à : pb servlet java pour alivePdf


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR