2010-01-18 12 views
1

Je crée une application d'inscription avec validation et Captcha (en utilisant SimpleCaptcha). Je suis capable de déployer mon application sur localhost et tout fonctionne parfaitement avec le captcha.Comment résoudre l'erreur StandardWrapperValve sur Catalina?

Mais lorsqu'il est déployé le fichier de guerre à un serveur de test, mon captcha ne fonctionne pas, et est ici une sortie du fichier journal:

org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:111) 
Servlet SimpleCaptchaServlet is currently unavailable 

Je n'enregistrer mon SimpleCaptchaServlet sur le web.xml, et je peut localiser le fichier de classe pour ce servlet, mais toujours incapable de localiser le problème. Puis-je savoir comment puis-je résoudre ce problème?

Voici le 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"> 
<servlet> 
    <servlet-name>SignupProcessServlet</servlet-name> 
    <servlet-class>com.example.controller.SignupProcessServlet</servlet-class> 
</servlet> 
<servlet> 
    <servlet-name>SignupSuccessServlet</servlet-name> 
    <servlet-class>com.example.view.SignupSuccessServlet</servlet-class> 
</servlet> 
<servlet> 
    <servlet-name>SignupServlet</servlet-name> 
    <servlet-class>com.example.view.SignupServlet</servlet-class> 
</servlet> 
<servlet> 
    <servlet-name>SimpleCaptchaServlet</servlet-name> 
    <servlet-class>com.example.controller.SimpleCaptchaServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>SignupProcessServlet</servlet-name> 
    <url-pattern>/signup_process.do</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>SignupSuccessServlet</servlet-name> 
    <url-pattern>/signup_success.view</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>SignupServlet</servlet-name> 
    <url-pattern>/signup.view</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>SimpleCaptchaServlet</servlet-name> 
    <url-pattern>/captchaImg</url-pattern> 
</servlet-mapping> 
<session-config> 
    <session-timeout> 
     30 
    </session-timeout> 
</session-config> 
<welcome-file-list> 
    <welcome-file>signup.html</welcome-file> 
</welcome-file-list> 

Merci beaucoup.

+0

Que diriez-vous d'autres composants de servlet? Est-ce que ceux qui travaillent bien? –

+0

@Vinegar: Je viens d'ajouter une autre servlet de test pour faire des lignes out.println, mais ça ne marche pas. –

+0

Bien que vous ayez inclus le fichier web.xml, mais avez-vous lu les journaux du serveur d'applications? Le servlet n'a pas été déployé correctement. Toutes les erreurs/exceptions doivent être disponibles dans les journaux du serveur d'applications. – BalusC

Répondre

0

Merci de m'avoir aidé. J'ai réussi à régler mon problème. C'est un problème avec le java 2 sdk existant sur le serveur, n'exécutant pas java ee 5. Il est obsolète et utilise tomcat 5.5. Lors de la création d'une nouvelle instance de java et tomcat (car certaines applications sont encore en cours d'exécution sur l'ancienne version), tout fonctionne bien.

Pour tous ceux qui se sont rencontrés avec ce problème similaire, il s'agit soit de mettre à jour le dernier jave 2 sdk et tomcat, soit de rétrograder votre script vers l'ancienne version compatible.

1

Votre servlet ne s'est pas déployée correctement. Vous devriez voir une trace de pile ou un message sur la console tomcat pendant le déploiement. Si vous avez posté votre contenu web.xml, cela pourrait nous donner un indice.

+0

@skaffman: web.xml ajouté –