我在 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);
}
}