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

发布项目到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)是编程时常见的错误类型,尤其是在处理数组、集合或字符串等数据结构时。这个异常通常发生在尝试访问一个不存在的位置时,比如访问数组的一个负索引或者超出...

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

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

    java.lang.IndexOutOfBoundsException(解决方案).md

    项目中碰到的,已解决,写个文档记录一下

    ssh 环境的搭建 采用 maven

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

    安卓错误日志收集

    - **异常类型**:识别错误日志中的异常类型,如NullPointerException、IndexOutOfBoundsException等。 - **堆栈跟踪**:查看堆栈跟踪信息,确定错误发生的具体位置和调用路径。 - **错误消息**:理解错误消息,它...

    北大青鸟6.0 S1 java 项目 MiniDvD

    【北大青鸟6.0 S1 Java 项目 MiniDVD】是一个针对初学者的Java编程教程,旨在通过实际项目的方式帮助学员掌握基础的Java编程技能。在这个项目中,"使用集合的思想实现添加和删除"是核心知识点,虽然它并不是Java集合...

    13大异常以及处理

    方法接收到不合适、不合法的参数。 **处理方法:** 在方法内部检查传入参数的有效性。 ```java if (isValidParameter(param)) { doSomething(param); } else { throw new IllegalArgumentException("Invalid ...

    java反编译工具,非常好用

    在大型项目中,开发者可能会遇到无法获取源代码的库,此时,JD-GUI就显得非常实用,它可以帮助开发者洞察这些库的功能,以便更好地集成和调试代码。 JD-GUI的特点包括: 1. **实时查看**:它可以即时加载并显示类...

    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项目常用异常处理汇总

    如果已经导入了包,但仍然报错,需要调整编辑器的设置。使用tomcat时,需要检查lib中是否导入了jar。 3.字符串转换为数字异常(java.lang.NumberFormatException) 这种异常发生的原因是字符串中出现非数字型字符...

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

    Java反编译是将已编译的Java字节码(.class文件)转换回源代码的过程,这在软件开发、逆向工程、调试和教学中都有应用。标题和描述暗示了这个压缩包可能包含了一个Java反编译工具,即jd-gui.exe,以及一个readme.txt...

    Java-Mail-list.zip_JAVA list通讯录

    7. **异常处理**:在执行删除和查找操作时,可能出现空指针异常(NullPointerException)或索引越界异常(IndexOutOfBoundsException)。因此,良好的异常处理机制是必要的,以确保程序的健壮性。 8. **用户界面**...

    mycat基本工具书

    ##### 10.29 Mycat ER分片子表数据插入报错 讨论了Mycat在插入ER分片子表数据时报错的可能原因及解决办法。 ##### 10.30 Mycat最大内存无法调整至4G以上 关于如何调整Mycat的最大内存占用问题。

    jiancha.rar_数组 越界 检查

    当检测到数组越界时,通常会抛出`IndexOutOfBoundsException`。正确的做法是捕获这个异常并采取适当的措施,如记录错误信息、显示用户友好的错误消息或者优雅地关闭程序。 在实际项目中,除了在类中进行越界检查,...

    Java异常体系结构.pdf

    这类异常在Java中被称为“检查异常”(Checked Exception),如`IOException`和`SQLException`,它们必须在方法签名中用`throws`关键字声明,或者在方法体内用`try-catch`块捕获,否则编译器将报错。 Java异常处理...

    数组越界异常

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

Global site tag (gtag.js) - Google Analytics