`
A牛哥哥
  • 浏览: 147481 次
社区版块
存档分类
最新评论

发布项目到tomcat报错IndexOutOfboundsException

阅读更多
最近部署一个从github上拉取的maven项目,遇到各种问题,最终解决成功运行,在此记录一下解决过程。

一,maven下载jar包失败
该项目依赖了大量jar包,很多包下载失败了,本地仓库里面都是一些 lastUpdated 的文件,只有把这些文件清理掉之后才能再次让maven下载,如果一个一个目录去删就太费时间了,因此在网上淘了个bat脚本直接删除lastUpdated 文件,脚本如下:

rem -- 这里写你的仓库路径 
set REPOSITORY_PATH=F:\maven_repository
rem -- 正在搜索... 
for /f "delims=" %%i in ('dir /b /s "%REPOSITORY_PATH%\*lastUpdated*"') do ( 
    del /s /q %%i 

rem 搜索完毕 
pause

二,eclpse的Markers视图使用
虽然jar包已经下载完成,但是很有可能有些jar包有问题,比如某个jar包本身只有200kb,但是maven下载下来这个jar包可能有250kb,明显这个jar包下载的有问题,其实这个jar文件是损坏了的,根本读取不了,所以项目上面有个红叉或者感叹号但是代码里面没有任何报错,这时打开eclipse的window--show view--other..--搜索Markers打开这个视图,看里面红色的部分,都是提示某个jar包损坏(后面有个感叹号),将本地仓库中这些jar包全部删掉重新触发maven下载

三,明明maven依赖里有xx.jar的com.xx.A.class这个文件,但是代码里面import com.xx.A这行偏偏报错,这也是xx.jar文件损坏的原因,删掉重新下载

四,好不容易项目都不报错了,但是发布到tomcat中报错提示IndexOutOfboundsException,网上查说也是本地仓库jar包的问题,但不知道到底是哪些jar包有问题(Markers视图没报错了),都说删掉整个本地仓库,但是我的本地仓库太大了,删掉后不知道要下载多久,于是我直接打war包(eclipse上对项目右键--run as--maven build...--输入clean package 勾选skip tests 进行打包)后放到tomcat中启动,报错[....xxx.jar] from WEB-INF/lib java.util.zip.ZipException,显然是xxx.jar包是损坏的,于是删掉本地仓库的xxx.jar重新下载然后重新启动tomcat,又提示另一个yyy.jar有问题,就这样处理差不多10个jar包,感觉不知道还有多少要处理,偶然发现maven打包过程中的日志里面有一些ERROR信息,大概是
读取xxx.jar时出错; invalid LOC header (bad signature)这样的信息,说明这个jar包是损坏的,这样可以一次性看到所有损坏的jar,将这些jar删除掉再下载,打包没有上述WARN日志说明真的是没有问题了

有时候用maven package 也未提示也并没有错误信息,能正常打包,但是发布到tomcat中还是报错invalid LOC header (bad signature),这时要再次执行maven clean 后在执行maven package 就能让maven报错了

最近还发现一个规律,下载失败的jar的文件夹内,似乎一定有一个名称以 aether- 开头的一个文件,例如:
e15a80f4-d647-48c1-a851-91643020492f-junit-4.9.jar.sha1-in-progress
所以也可以直接在本地仓库搜索 aether ,将含有此类文件的jar目录全部删除,再次让maven重新下载

五,maven实在下载不了的,直接在http://mvnrepository.com/ 中搜索出该jar下载后放到本地仓库对应目录中



分享到:
评论

相关推荐

    java 索引越界异常(IndexOutOfBoundsException)

    java 索引越界异常(IndexOutOfBoundsException) java 索引越界异常(IndexOutOfBoundsException)

    JXL2.6:解决JXL的IndexOutOfBoundsException getSheet问题

    NULL 博文链接:https://liuzidong.iteye.com/blog/1071677

    ssh 环境的搭建 采用 maven

    核心配置文件 核心配置文件 核心配置文件 核心配置文件 核心配置文件 核心配置文件 核心配置文件 核心配置文件 核心配置文件 核心配置文件 核心配置文件 核心配置文件 核心配置文件 核心配置文件

    13大异常以及处理

    这是一个教你如何解决异常的文件,13大异常的中英文以及相对应的处理方法,类似的

    java反编译工具,非常好用

    非常好用的Java反编译软件,我在大型项目中验证了

    RecyclerView索引溢出异常的解决方法

    java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter positionViewHolder 继承并重写LinearLayoutManager.onLayoutChildren()方法 class WrappedLinearLayoutManager : ...

    fckeditor 1.6功能实现完整项目

    关于fckeditor的使用以及配置,这个是一个完整的fckeditor使用项目,包括jar包,源代码,xml配置文件。在struts的时候,要注意过滤器,如果使用/*的话会出现indexOutOfBoundsException异常,关于如何正确使用我已经...

    Java反编译工具,希望对各位有用

    Java反编译工具,希望对各位有用

    数组越界异常

    用try…catch…finally写一个捕捉数组越界的异常例子。

    AXMLPrinter2

    java.lang.ArrayIndexOutOfBoundsException: 128 at android.content.res.StringBlock.getShort(StringBlock.java:231) at android.content.res.StringBlock.getString( StringBlock.java:91) ...

    10道Java常见异常面试题含答案(很全)

    当程序运行到try语句块中的代码时,如果发生异常,程序将跳转到相应的catch语句块进行处理。如果没有找到匹配的catch语句块,程序将终止。 一个完整的try-catch语句块包括以下部分: try语句块:包含可能抛出异常...

    SimpleAudio:SimpleAudio是一个纯Java库,可让您以统一的方式播放WAV,AIFF,AU,OGG和MP3音频文件

    变更日志版本2.0.1(与此库的旧版本不兼容) 将方法setTrack添加到Playlist 修复了Playlist类的next和previous方法中的IndexOutOfBoundsException 使项目Maven兼容更名Utils到Util 添加了单元测试更新了文档将Audio...

    超级有影响力霸气的Java面试题大全文档

    但通常情况下,由于Java Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,通常Java Bean还要实现Serializable接口用于实现Bean的持久性。Java Bean实际上相当于微软COM模型中的本地...

    JAVA面试大全

    例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发NullPointerException。另一种情况就是Java允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发...

    KETTLE表输入变量执行每一行

    KETTLE表输入变量执行每一行,ORACLE数据库,scott用户,密码oracle

    Java程序员经典面试题37道及答案

    数 组下标越界,会引发 IndexOutOfBoundsException;访问 null 的对象时会引发 NullPointerException。另一种 情况就是 Java 允许程序员扩展这种语义检查,程 序员可以创建自己的异常,并自由选择在何时用 throw 关键字...

    java面试题集及答案解析

    例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发NullPointerException。另一种情况就是JAVA允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发...

    Array index out of bound exception

    If the index is out of bounds, the method readValue(int [ ] a, int k) should throw an IndexOutOfBoundsException. The main program should catch the exception and display the message "out of bounds".

    各大公司Java面试题

    例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发NullPointerException。另一种情况就是JAVA允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发...

    java面试的常见问题

    例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发NullPointerException。另一种情况就是JAVA允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发...

Global site tag (gtag.js) - Google Analytics