jwebmail 启动时的 javax.servlet.unavailablexception

标签 java tomcat servlets webmail

我在 tomcat 5.5 和 6 上使用流行的 jWebmail(或 Java Webmail)jar 时遇到了一些问题。

我目前正在尝试让它在 Tomcat 6 上运行,并且我已经按照我在某处找到的建议将 javamail jar 放在 tomcat 的 lib 文件夹中,但仍然无法运行。

我遇到了这个错误:

jul 22, 2013 10:28:54 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Excepción de reserva de espacio para servlet WebMail
javax.servlet.UnavailableException
    at net.wastl.webmail.server.WebMailServer.initStorage(Unknown Source)
    at net.wastl.webmail.server.WebMailServer.doInit(Unknown Source)
    at net.wastl.webmail.server.WebMailServlet.init(Unknown Source)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1213)
    at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:827)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Unknown Source)

但我确实有来自 Oracle 网站的最后一个 javax 邮件 jar。那里没有 net.waSTL.webmail.server.WebMailServer 类,所以也许我还遗漏了其他东西,而且我没有在已经解决的地方找到任何帖子

提前致谢

编辑:

我找到了这段代码,那一定是在war类里面,异常似乎在上升,但还是不明白那里发生了什么

protected void initStorage() {
/* Storage API */
    try {
        Class storage_api=Class.forName(config.getProperty("webmail.storage"));

        Class[] tmp=new Class[1];
        tmp[0]=Class.forName("net.wastl.webmail.server.WebMailServer");
        Constructor cons=storage_api.getConstructor(tmp);

        Object[] sargs=new Object[1];
        sargs[0]=this;

        storage=(Storage)cons.newInstance(sargs);

    } catch(InvocationTargetException e) {
        Throwable t=e.getTargetException();
        System.err.println("Nested exception: ");
        t.printStackTrace();
        System.err.println("Fatal error. Could not initialize. Exiting now!");
        System.exit(1);
    } catch(Exception e) {
        e.printStackTrace();
        System.err.println("Fatal error. Could not initialize. Exiting now!");
        System.exit(1);
    }
}

最佳答案

你得到一个 UnavailableException对于 servlet WebMail。这是因为它当前(暂时或永久)不可用。一个原因可能是 servlet 的错误配置。

您可以在 web.xml 文件中检查该 servlet 的配置。您还可以检查 tomcat 日志以获取有关可能原因的一些提示。

请注意,在某些较早的 servlet 规范(我认为是 2.3 及更低版本)中,web.xml 中元素的顺序很重要。

还要注意 oracle 的 javamailjwebmail 不同.所以不要指望在那里找到您正在使用的类。

关于jwebmail 启动时的 javax.servlet.unavailablexception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17783109/

相关文章:

java - Servlet 响应写入与打印?哪个更好?

java - 检查 Android 中 Typeface 对象的系列

java - 同时使用 Servlet 和 JSP 会导致意外循环

java - 隐藏 SD 卡为只读

tomcat - 如何在 Apache tomcat 中使用 NTLM 功能?

java - Spring boot 构建失败,无法启动组件 [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]]

java - Apache Tomcat 8 仅在浏览器中呈现空白

java - 提交响应后无法转发 - Servlet

java - 从源代码中剥离 html 标签

Tibco 数据报 (TibrvMsg) 的 JavaDocs?