将war加载到tomcat6时出错

时间:2014-05-20 01:09:32

标签: eclipse zip tomcat6 war bonecp

我试图将我的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文件时出错

我找到了一些建议并尝试了所有这些建议,仍然难倒。

  • 将文件移至diff目录,然后复制到webapps
  • 在转移到webapps之前更改了文件权限
  • 停止Tomcat,删除旧的,添加新的,然后重启
  • 在重新部署之前为战争添加了一个随机类
  • 卸载tomcat6(同时删除tomcat6目录)并重新安装tomcat6

这是最奇怪的部分 - 我也曾经历过曾经在同一台服务器上工作的旧战争(相同应用程序的旧版本),而且那些也不起作用(同样的错误) ),即使重新安装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();
    }
}

1 个答案:

答案 0 :(得分:1)

Welp,我想出来...... 不知何故,mysql root用户的密码被更改,这是非常奇怪的,因为我是唯一触及任何此类人员的人。我有一种感觉MySQLWorkbench以某种方式在我不知情的情况下这样做了吗?我刚刚安装了新版本(6.1)。 基本上这似乎是一个抓住所有错误,我看到有人在其他线程上提到,所以我已经进行了为期4天的疯狂追逐。我想出这个的唯一原因是因为我终于尝试通过控制台以root身份登录到mysql,回想起来我应该早点尝试过。