2010-10-08 10 views
1

éditer 10/8/10 @ 8:20 am est - puisque je ne peux pas faire ce travail dans prod, je vais essayer de le faire échouer dans le test.ne peut pas accéder au servlet, 404 pas trouvé

éditez 10/8/10 @ 4:30 pm est - passer un bon moment !!! NE PAS. Ok, l'enfer continue. J'ai appris plus tôt aujourd'hui que nous exécutons aussi Apache httpd comme un processus séparé. Nous pensons donc que nous ne transmettrons peut-être pas la requête à Tomcat. Je ne cours pas httpd dans mon environnement de test.

Édition 10/10/10 @ 20h20 - découvert que le serveur avait également httpd fonctionnant dessus. httpd redirigeait uniquement les requêtes jsp vers Tomcat. Apache mangeait les demandes de servlet, essayant de servir des pages statiques (?) Et échouant bien sûr. J'ai piraté le bajezus de worker2.properties pour que httpd transmette les requêtes. Aie.


Tomcat 5.5, RedHat Linux.

J'ai créé une servlet qui bien sûr fonctionne bien dans notre environnement de test. Je l'ai déplacé à la production et j'échoue avec une erreur 404. Selon le journal catalina, la servlet semble se charger correctement.

Je suis à bout de nerfs - je ne sais pas comment résoudre ce problème. C'est presque comme si j'avais mal orthographié le nom du servlet quelque part.

Voici mon web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
    <display-name>Pdf Servlet</display-name> 
    <servlet> 
     <servlet-name>pdf</servlet-name> 
     <servlet-class>com.thop.exp.PdfServlet</servlet-class> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>pdf</servlet-name> 
     <url-pattern>/pdf</url-pattern> 
    </servlet-mapping> 
    <session-config> 
     <session-timeout> 
      30 
     </session-timeout> 
    </session-config> 
    <welcome-file-list> 
     <welcome-file>index.jsp</welcome-file> 
     </welcome-file-list> 
    </web-app> 

Je suis en train de naviguer à www.myurl.net/PdfServlet/pdf. Je crois que j'ai enraciné correctement. et le nom du fichier de guerre est PdfServlet.war.

Des idées sur un problème, ou des idées sur ce que je peux faire pour avoir une idée?


Voici le journal.

INFO: Installing web application at context path /PdfServlet from URL file:/mnt/san00/aaadata_root/ROOT/PdfServlet 
Oct 7, 2010 11:32:50 PM org.apache.catalina.core.StandardHost start 
INFO: XML validation disabled 
Oct 7, 2010 11:32:50 PM org.apache.catalina.startup.ContextConfig applicationConfig 
INFO: Missing application web.xml, using defaults only StandardEngine[Catalina].StandardHost[aaa.net].StandardContext[] 
Oct 7, 2010 11:32:50 PM org.apache.catalina.core.StandardHost getDeployer 
INFO: Create Host deployer for direct deployment (non-jmx) 
Oct 7, 2010 11:32:50 PM org.apache.coyote.http11.Http11Protocol start 
INFO: Starting Coyote HTTP/1.1 on http-8080 
Oct 7, 2010 11:32:50 PM org.apache.jk.common.ChannelSocket init 
INFO: JK2: ajp13 listening on /0.0.0.0:8009 
Oct 7, 2010 11:32:50 PM org.apache.jk.server.JkMain start 
INFO: Jk running ID=0 time=0/25 config=/usr/share/tomcat5/conf/jk2.properties 
Oct 7, 2010 11:32:50 PM org.apache.catalina.startup.Catalina start 
INFO: Server startup in 4325 ms 
+3

Si vous supprimez le/pdf, êtes-vous en mesure d'atteindre votre fichier index.jsp? Cela devrait vous donner une indication si votre application est chargée lors de la suppression de votre servlet et mappage hors de l'équation – Sean

+0

Intéressant. Oui je peux. –

+0

Y a-t-il quelque chose dans le journal? –

Répondre

1

Je vous recommande d'essayer de compresser votre application Web en tant que fichier WAR - nommez-la PDFServlet.war. Mettez cela dans votre répertoire Tomcat/webapps. L'URL en question serait http://www.myurl.net:8080/PdfServlet/pdf. Je suppose que Tomcat écoute le port 8080; sinon, ajoutez votre propre numéro de port.

N'existe-t-il aucun moyen de spécifier quel PDF l'utilisateur veut? Ou est-ce toujours le même PDF?

+0

Les noms PDF sont construits en fonction de l'identifiant du client et de la date. La servlet récupère le PDF approprié à partir d'un serveur et le transmet au jsp. –

+0

Le client entre-t-il ses informations d'identification? Ou s'agit-il d'une requête REST (par exemple,? CustId = X) – duffymo

+0

REST, de manière charitable. –

1

Tomcat 5.5 est un servlet 2.4 container, et que vous avez spécifié que vous avez un 2.5 web.xml.

Si la version de Tomcat test est plus récente que la version 5.5 (6 ou 7), essayez d'abaisser web.xml à 2.4.


EDIT: Ok, essayez de désinstaller/pdf à nouveau de web.xml et voyez si vous pouvez appeler la classe com.thop.exp.PdfServlet de votre fichier index.jsp.

+0

Modifications effectuées, redémarrage de tomcat, aucun changement de comportement. –

+0

C'est la seule servlet sur le système autant que je sache. Est-ce que les servlets doivent être 'activés' dans une config quelque part? –

+0

J'ai été capable de _refer_ à la classe com.thop.exp.PdfServer. J'ai essayé de l'invoquer en utilisant un formulaire et j'ai obtenu la même erreur, "Non trouvé, L'URL demandée/PdfServlet/pdf n'a pas été trouvée sur ce serveur." –

Questions connexes