0

我在 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 类,所以也许我错过了其他东西,我没有找到任何已经解决的帖子

提前致谢

编辑:

我找到了这段代码,它必须在战争类中,异常似乎正在上升,但仍然不明白那里发生了什么

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);
    }
}
4

2 回答 2

1

您将获得servlet的UnavailableExceptionWebMail。这是因为它当前(暂时或永久)不可用。一个原因可能是 servlet 的配置错误。

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

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

另请注意,oracle 的javamailjwebmail 不同。所以不要指望在那里找到你正在使用的类。

于 2013-07-22T11:25:30.610 回答
0

解决了:

我试图在 Windows 操作系统上部署,Catalina 日志正在上升,建议:“警告:此软件从未在您的操作系统下测试过”

所以,我部署在一个 linux Tomcat 中,一旦我在 tomcat 的 bin 中添加了 CATALINA_HOME 和 jar,它就可以工作了!

尽管 jwebmail 的要求没有指定系统,但不建议在 Windows 上尝试,我认为我没有成功

谢谢大家!

于 2013-07-24T13:04:12.523 回答