如何在Catalina上解决StandardWrapperValve错误?

时间:2010-01-18 09:54:56

标签: java tomcat servlets web-deployment simplecaptcha

我正在使用验证和Captcha(使用SimpleCaptcha)创建一个注册应用程序。我可以在localhost上部署我的应用程序,一切都完全包含验证码。

但是当将war文件部署到测试服务器时,我的验证码不起作用,这是日志文件的输出:

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

我确实在web.xml上注册了我的SimpleCaptchaServlet,我可以找到该Servlet的类文件,但仍无法找到问题。我可以知道如何解决这个问题吗?

这是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>

非常感谢。

2 个答案:

答案 0 :(得分:1)

您的servlet未正确部署,您应该在部署期间在tomcat控制台上看到堆栈跟踪或消息。如果你发布了web.xml内容,那可能会给我们一个线索。

答案 1 :(得分:0)

感谢您帮助我。我设法解决了我的问题。这是服务器上现有的java 2 sdk的问题,而不是运行java ee 5.它已经过时了,并且使用了tomcat 5.5。在创建一个新的java和tomcat实例时(因为旧版本上仍有一些应用程序正在运行),一切运行良好。

对于碰巧遇到类似我的类似问题的人来说,要么升级最新的jave 2 sdk和tomcat,要么将你的脚本降级到兼容的旧版本。