`
java_holdIng
  • 浏览: 30005 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

记一次项目启动报错问题

 
阅读更多

今天遇到了一个问题,困扰了我几个小时,虽然最后是一个小问题导致的。记录下,也算一个解决问题的方法。

  前提:调用webservice时引用

        <dependency>
            <groupId>org.codehaus.xfire</groupId>
            <artifactId>xfire-all</artifactId>
            <version>1.2.6</version>
        </dependency>

 项目采用springboot。  代码都完全开发好了,本地再idea中启动都没有问题,但是打成jar包或者war启动之后总是报错如下:

java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:53)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NoSuchMethodError: org.springframework.util.ClassUtils.isPresent(Ljava/lang/String;Ljava/lang/ClassLoader;)Z
        at org.springframework.boot.SpringApplication.deduceWebEnvironment(SpringApplication.java:257)
        at org.springframework.boot.SpringApplication.initialize(SpringApplication.java:248)
        at org.springframework.boot.SpringApplication.<init>(SpringApplication.java:225)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107)
        at com.drore.cloud.tdp.DataInterfaceApplication.main(DataInterfaceApplication.java:13)
        ... 6 more

 从报错中看出,是找不到某个方法。然后开始排查问题:

 1、确定问题,注释掉这个依赖就可以启动,添加上就有问题,所以可以确定是这个依赖的问题。

 2、根据报错信息,应该是少了什么方法,然后从网上找,答案各样,却都不能解决根本问题,最终确定应该是一个jar引用的问题,具体哪个jar不确定。 后来具体搜索了下这个方法,发现是spring的一个jar包中的方法。然后跟进下引入的这个依赖,看看都间接引入了哪些依赖包,最后发现确实有一个spring的jar包被引入。于是排除掉:

      <dependency>
            <groupId>org.codehaus.xfire</groupId>
            <artifactId>xfire-all</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.codehaus.xfire</groupId>
                    <artifactId>xfire-spring</artifactId>
                </exclusion>
            </exclusions>
            <version>1.2.6</version>
        </dependency>

 再次启动项目,结果还是跟那上面一样的问题。但是反复确定问题确实是在这里。 于是怀疑这个依赖还在,然后就打成war包,发布到本地的tomcat中,然后再去webapp下面找到这个项目的lib包,果然spring-1.2.6这个过时的版本还在里面,于是项目启动的时候就总是会跟这个依赖冲突,就会报错。 所以在lib中去掉这个jar,重启tomcat,问题解决。

 

上面的问题说起来简单,但却耗费了几个小时,主要原因还是开始解决问题的思路不对,仅记录下一个思路。希望对自己对别人以后再有类似的问题可以少踩点坑。

 

分享到:
评论

相关推荐

    Java 中解决Unsupported major.minor version 51.0的问题

    主版本号(major version)和次版本号(minor version)是Java Class文件结构的一部分,它们记录了与字节码兼容的JVM版本。在Java 7中,主版本号被设置为51,因此"51.0"就代表了Java 7。当你尝试用Java 7的编译器...

    记一次Django响应超慢的解决过程

    在本地windows机器开发的Django项目运行正常,放到服务器上后响应超慢,花了一整个工作日没找到原因(非常绝望),又花了一整个周末才找到原因和临时解决办法,如果你的项目超慢可以参考一下解决思路。 排查过程: 1...

    mqttfx-1.7.1-windows-x64 mqtt客户端工具

    6. **QoS 级别**:MQTT 提供三种服务质量(QoS)级别:QoS 0(至多一次)、QoS 1(至少一次)和 QoS 2(只有一次)。MQTTFX 支持这三种级别,让你可以灵活选择消息传递的可靠性。 7. **主题模板**:为了提高效率,...

    mybites@标签应用(白板选课系统)

    项目搭建 项目启动不报错,实体类设计正确,代码分层无误 10 JDBC工具类 采用原生JDBC实现数据库操作得5分,采用mybatis实现数据库操作得10分 10 登录 前端页面正常显示,能够登录成功,并返回登录结果,无逻辑错误 10 ...

    软件项目维护方案(参考示例).pdf

    4. 对数据库状态进行一次全面查看。 维护服务方案: 日常维护中需要非常仔细,每周、每月、每季都需要有相应的巡检记录,需要详细记载以下一些内容: 1. 监控数据库对象的空间扩展情况。 2. 监控数据量的增长情况...

    匹配实体类的实现了大部分功能分页 网页分页

    在IT行业中,分页是网页应用中不可或缺的一部分,特别是在处理大量数据时,它能有效提高用户体验,避免一次性加载过多内容导致页面响应速度下降。这里我们关注的标题是“匹配实体类的实现了大部分功能分页 网页分页...

    记一次解决maven引入jar包冲突全过程;TinkConfig注册失败

    某次部署启动项目后发现解密方法失败,查阅日志,TinkConfig注册失败,追溯debug至jar包内部,tinconfig的注册方法处,报错: 发现报错信息是V3版本的protobuf包中的类未加载,查看解密用的utils包A中是否成功引入...

    【内部复盘版】20210625.docx

    【内部复盘版20210625.docx】文档记录了徐汇区汇治理网关在2021年6月25日发生的一次严重故障,影响了汇治理小程序和徐汇区“一网统管”实战平台的部分功能。以下是详细的知识点分析: 1. **故障现象与影响**:故障...

    本地jar包打包到本地仓库 ROOT.war

    通过maven的命令 mvn install:install-file -Dfile……比较繁琐,我把这个繁琐的工作做了一次封装,批量操作,方便自己也分享给各位! (1)运行环境,需要用tomcat8.0及以上版本(其他容器JBoss、WebLogic期待您...

    JDBC连接Mysql数据库案例

    通过`addBatch()`添加多个SQL到批处理队列,然后使用`executeBatch()`一次性执行。 10. **事务管理**: JDBC提供了对事务的支持。可以设置自动提交模式,或者手动控制事务的开始、提交和回滚。 通过以上步骤,...

    大华SDK+java+4G网络摄像头

    在IT行业中,4G网络摄像头的二次开发是一个重要的领域,特别是在智能监控、远程视频传输等应用中。大华作为知名的安防设备制造商,提供了丰富的SDK(Software Development Kit)供开发者使用,以便于集成其硬件功能...

    epson m30清零软件

    Epson M30是一款经济实惠...总的来说,Epson M30清零软件是一种实用工具,能够帮助用户解决因计数器问题导致的打印机错误,延长打印机的使用寿命。正确使用清零软件,能够确保Epson M30打印机始终保持良好的工作状态。

    simple-react-starter

    对于初学者,这是一次了解和学习React及其生态系统的好机会,你可以深入研究如何组织React组件,理解路由、状态管理和副作用处理等概念。此外,通过调试和修复错误,你还可以提升自己的问题解决能力。

    EXCEL集成工具箱V8.0完整增强版(精简)

    允许一次性多图片格式(*.JPG/*.GIF/*.BMP/*.PNG),且支持模糊与非模糊方式导入图片,还可以在导入的图片上显示其文件名称以易于管理。 【批量导出图片】 将EXCEL中指定某列中的图片按显示图片大小导出到指定的...

    Exchange2007安装配置步骤与运维

    1. **安装前准备**:在安装Exchange 2007之前,确保Active Directory(AD)已经部署,并且在进行二次安装时,如果需要,可以通过adsiedit.msc工具删除AD中的Exchange相关项目,包括IIS_WPG、IUSR_MAIL和IWAM_MAIL等...

    EXCEL集成工具箱V6.0

    允许一次性多图片格式(*.JPG/*.GIF/*.BMP/*.PNG),且支持模糊与非模糊方式导入图片,还可以在导入的图片上显示其文件名称以易于管理。 【批量导出图片】 将EXCEL中指定某列中的图片按显示图片大小导出到指定的...

    Parking-Management-System:Windows桌面应用程序,用于管理车辆停车

    Java是一种跨平台的编程语言,其“一次编写,到处运行”的特性使得该系统能够在各种操作系统上运行,包括Windows。开发者选择了Java作为主要开发语言,是因为它具有丰富的类库、优秀的性能以及良好的可维护性,这为...

    BasicUserNotification.m

    从而决定这一次的进入应用程序,到底要显示或执行什么动作,下面的方法就会在点击通知时自动调用 */ /* 1.应用程序在前台时:通知到,该方法自动执行 2.应用程序在后台且没有退出时:通知到,只有点击了通知查看...

    C# 命名管道NamedPipe实现客户端和服务端交互winform窗口实现

    命名管道是一种半双工通信机制,这意味着数据可以在两个方向上传输,但一次只能在一个方向上进行。在Windows操作系统中,命名管道可以通过一个全局唯一的名称进行访问,使得服务端可以监听特定管道,而客户端则通过...

Global site tag (gtag.js) - Google Analytics