我试图将我的war文件加载到Tomcat 6并不断收到此错误:
2014年5月20日上午12:35:42 org.apache.catalina.startup.ContextConfig 在里面 严重:异常修复docBase for context [/ MyService] java.util.zip.ZipException:打开zip文件时出错 在java.util.zip.ZipFile.open(本机方法)
...
2014年5月20日上午12:35:42 org.apache.catalina.core.StandardContext resourcesStart 严重:启动静态资源时出错 java.lang.IllegalArgumentException:无效或不可读的WAR文件:打开zip文件时出错
我找到了一些建议并尝试了所有这些建议,仍然难倒。
这是最奇怪的部分 - 我也曾经历过曾经在同一台服务器上工作的旧战争(相同应用程序的旧版本),而且那些也不起作用(同样的错误) ),即使重新安装Tomcat之后。这让我相信它是一个Tomcat问题,但卸载并没有解决任何问题。 此外,我已经从同一个项目(Eclipse)创建了war文件,并将它们部署到不同的tomcat6服务器上。此外,当我在我的开发盒上运行应用程序localhost Eclipse / Tomcat远程连接到同一个数据库时,一切正常。
当我实际发出http请求时,应用程序已部署,但是我有一个静态初始化程序无法正常工作并导致空指针异常。我认为这与
有关SEVERE:启动静态资源时出错
这是静态初始化程序,它正在创建一个BoneCP连接池,它也一直有效,我确认MySQL工作正常(复制也在发生 - 它是一个从属MySQL)。 connectionPool对象为null,我的日志中没有为openPool()方法获取堆栈跟踪,我也没有看到任何与MySQL的根连接:
protected static BoneCP connectionPool = null;
static
{
openPool();
}
protected static void openPool()
{
try
{
Class.forName("com.mysql.jdbc.Driver").newInstance();
BoneCPConfig config = new BoneCPConfig();
config.setJdbcUrl("jdbc:mysql://localhost:3306/mydatabase");
config.setUsername("root");
config.setPassword("mypassword"); //SLAVE
config.setMinConnectionsPerPartition(2);
config.setMaxConnectionsPerPartition(6);
config.setPartitionCount(7);
connectionPool = new BoneCP(config);
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
答案 0 :(得分:1)
Welp,我想出来...... 不知何故,mysql root用户的密码被更改,这是非常奇怪的,因为我是唯一触及任何此类人员的人。我有一种感觉MySQLWorkbench以某种方式在我不知情的情况下这样做了吗?我刚刚安装了新版本(6.1)。 基本上这似乎是一个抓住所有错误,我看到有人在其他线程上提到,所以我已经进行了为期4天的疯狂追逐。我想出这个的唯一原因是因为我终于尝试通过控制台以root身份登录到mysql,回想起来我应该早点尝试过。