IDEA 打war包部署时子模块jar包没依赖上

2023-10-26


使用IDEA在tomcat中部署maven多模块时出现的一个莫名的bug


首先在server中打印下: 可以看见  context  [] startup failed due to previous error,     see server log for details.


[2018-10-19 10:55:28,273] Artifact springmvc-test:war exploded: Artifact is being deployed, please wait...
Oct 19, 2018 10:55:29 AM org.apache.catalina.startup.TldConfig execute
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were
 scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Oct 19, 2018 10:55:30 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: One or more listeners failed to start. Full details will be found in the appropriate container log file
Oct 19, 2018 10:55:30 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [] startup failed due to previous errors
[2018-10-19 10:55:30,410] Artifact springmvc-test:war exploded: Error during artifact deployment. See server log for details.
Oct 19, 2018 10:55:38 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /opt/apache-tomcat-7.0.90/webapps/manager
Oct 19, 2018 10:55:38 AM org.apache.catalina.startup.TldConfig execute
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were 
scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
Oct 19, 2018 10:55:38 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory /opt/apache-tomcat-7.0.90/webapps/manager has finished in 222 ms

于是我们打开tomcat日志位置并查看:   显示framework-base中的ConfigItem NotFound.



zwj@ubuntu:~/.IntelliJIdea2018.1/system/tomcat/Unnamed_learn/logs$ ls
catalina.2018-10-18.log      localhost_access_log.2018-10-17.txt  catalina.2018-10-19.log      localhost_access_log.2018-10-18.txt
host-manager.2018-10-18.log  localhost_access_log.2018-10-19.txt  host-manager.2018-10-19.log  manager.2018-10-18.log
localhost.2018-10-18.log     manager.2018-10-19.log  localhost.2018-10-19.log

cat localhost。2018-10-19.log

org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [com.zwj.framework.base.config.ConfigItem] for bean with name 
'com.zwj.framework.base.config.ConfigItem#0' defined in class path resource [spring/applicationContext.xml]; nested exception is 
java.lang.ClassNotFoundException: com.zwj.framework.base.config.ConfigItem


果然在war包下的lib中并没有framework-base,springwork-mybatis等子模块的jar包:

8d16887e2342ad97bfc5ed1a6cd0945f103a2c97

显然使用idea点击运行tomcat时,在编译打包过程中我们的子模块给遗漏了?带着问题继续查看IDEA的日志。。。


zwj@ubuntu:~$ cd .IntelliJIdea2018.1/system/log/
zwj@ubuntu:~/.IntelliJIdea2018.1/system/log$ ls
build-log   idea.log.2	idea.log.5
idea.log    idea.log.3	threadDumps-freeze-20181016-152806-IU-181.5540.7-20sec
idea.log.1  idea.log.4
zwj@ubuntu:~/.IntelliJIdea2018.1/system/log$ tail -f idea.log


com.intellij.execution.ExecutionException: Cannot load /home/zwj/learn/learn/springmvc-test/target/artifacts/springmvc_test_war_exploded
/META-INF/context.xml: /home/zwj/learn/learn/springmvc-test/target/artifacts/springmvc_test_war_exploded/META-INF/context.xml (No such file or 
directory)
	at org.jetbrains.idea.tomcat.TomcatUtil.loadXMLFile(TomcatUtil.java:208)
	at org.jetbrains.idea.tomcat.TomcatUtil.findContextInContextXml(TomcatUtil.java:107)
	at org.jetbrains.idea.tomcat.TomcatUtil.findContextElement(TomcatUtil.java:381)
	at org.jetbrains.idea.tomcat.admin.TomcatAdminLocalServerImpl.addApplicationContext(TomcatAdminLocalServerImpl.java:191)


百度了半天发现,这个context文件没有加载并不是错误的根本,而是没有导入子模块的jar包时产生的子错误。


庆幸的是最终还是找到了错误,我们看到下图中artifacts的lib中没有子模块的jar包,需要先点击lib,然后在available elements中点开相应模块,然后再

pack into进去。

81781264c3ff5cc9b576af9f0dc79a598fc75570f49f400c64c9b66bd44f3c06a7d2bfd576848c35


最后点击运行就行了。。。。。。。


坑。。。。。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IDEA 打war包部署时子模块jar包没依赖上 的相关文章

随机推荐

  • 博易大师行情服务器文件夹,博易大师目录

    c program files pobo settings这个目录下的东西是pobo的参数设置这个路径是可以改的具体在pobo安装路径下有个cfg子目录里面有个userpath ini文件内容就是pobo settings的生成路径第一次运
  • TCP 多线程——一个服务器被多个客户端连接

    为了使一个服务器端能被多个客户端连接我们采用线程的方法 服务器创建一个线程之后 打开的套接字就被线程所继承 线程可以和连接的客户进行通信 而主线程 主服务器 可以继续接受以后的客户连接 即Accept之后产生一个c 然后将c传递给新创建线程
  • Visual C++ 2008 Feature Pack 开发包

    http download csdn net detail fandh 1018063 Visual C 2008 Feature Pack 开发包
  • 使用 Skeleton Screen 提升用户感知体验

    1024程序猿节 愿世界和平 没有bug 腾讯云社区向改变世界的程序猿致敬 作者 陈纬杰 一直以来 无论是web还是iOS android的应用中 为了提升应用的加载等待这段时间的用户感知体验 各种奇门遁甲之术层出不穷 其中 菊花图以及由它
  • 【满分】【华为OD机试真题2023 JAVA&JS】硬件产品销售方案

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 硬件产品销售方案 知识点递归数组DFS搜索回溯 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 某公司目前推出了AI开发者套件 AI加速卡 AI加速模块 AI服务
  • 可以改动的option组件_MySQL的validate_password插件/组件总结

    Password Validation插件和组件 在MySQL 8 0之前 MySQL使用的是validate password插件 plugin 检测 验证账号密码强度 保障账号的安全性 而到了MySQL 8 0 引入了服务器组件 Com
  • c高级 day4

    实现一个对数组求和的函数 数组通过实参传递给函数 bin bash read p 请输入数组 a arr function sum sum 0 for i in arr do sum sum i done echo 数组和 sum sum
  • ubuntu nginx服务器安装SSL证书

    证书安装 前往 SSL 证书管理控制台中下载 SSL 证书 名称以 bdjw work 为例 文件压缩包 并解压到本地目录 解压缩后 可获得相关类型的证书文件 文件内容 bdjw work bundle crt 证书 bdjw work k
  • MySQL 高级原理: MySQL执行过程及执行顺序

    一 MySQL执行过程 MySQL整体的执行过程如下图所示 1 1 连接器 1 1 1连接器的主要职责 1 负责与客户端的通信 是半双工模式 这就意味着某一固定时刻只能由客户端向服务器请求或者服务器向客户端发送数据 而不能同时进行 其中My
  • 文件的打开与关闭

    对于文件的打开与关闭 我们可以通过鼠标来控制 但是 在我们写代码的时候 总不能来用鼠标来打开关闭文件 并且还能将代码放在那个文件里面吧 因此 我们需要一个文件指针来帮助我们来打开和关闭文件 1 文件指针 缓冲文件系统中 关键的概念是 文件类
  • Ubuntu命令行修改网络配置,静态ip,hostname ,解决hostname ping不通的办法

    打开后里面可设置DHCP或手动设置静态ip 前面auto eth0 让网卡开机自动挂载 1 以DHCP方式配置网卡 编辑文件 etc network interfaces sudo vi etc network interfaces 并用下
  • Ms08067漏洞复现

    Ms08067漏洞复现 首先安装好测试环境xp的镜像文件 nmap扫描 首先确定靶机所在的网段 然后在kali中利用命令扫描出IP nmap sP 192 168 229 0 24 得到 IP 192 168 229 168 其次在利用nm
  • 字节、字、位、比特的概念和关系

    1 位 bit 来自英文bit 音译为 比特 表示二进制位 位是计算机内部数据储存的最小单位 11010100是一个8位二进制数 一个二进制位只可以表示0和1两种状态 21 两个二进制位可以表示00 01 10 11四种 22 状态 三位二
  • 如何避免服务器被恶意网络攻击

    服务器的IP是可公开透明的 很容易遭到黑客入侵或网络攻击 对服务器的恶意网络行为包括两个方面 首先是恶意的攻击行为 如DDoS攻击 网络病毒等等 这些行为旨在消耗服务器资源 影响服务器的正常运作 甚至服务器所在网络的瘫痪 另外一个就是恶意的
  • STM8L151的IAR工程编译报错Fatal Error[Pe035]: #error directive: “Please select first the target STM8L...

    项目场景 STM8L151G4XX单片机IAR工程编译报错 问题描述 编译报错 Fatal Error Pe035 error directive Please select first the target STM8L device us
  • token的使用流程以及 JWT构成和构建

    1 什么是token token是一个令牌 是前后端开发时的一个验证工具 就是一个字符串 我们先解释一下他的含义 1 Token的引入 Token是在客户端频繁向服务端请求数据 服务端频繁的去数据库查询用户名和密码并进行对比 判断用户名和密
  • Linux的诞生和发展&开源模式的流行

    Linux的诞生和发展 Linux的诞生 1991年最初由Linus Torvalds针对386 个人计算机 开发 Linus Torvalds那时是芬兰的一名研究生 20世纪80年代 计算机硬件的性能不断提高 PC的市场不断扩大 当时可供
  • axivion和astree_Axivion架构分析及验证工具

    德国Axivion公司 德国Axivion 公司是一家完全自主的技术公司 公司保持持续增长 在软件开发解决方案领域拥有超过10年的经验 作为源于斯图加特大学的公司 Axivion公司提供了一个良好的学术背景 开发专业完整的解决方案 以确保软
  • 2011年终总结-DIY 苹果手机铃声

    一首 月亮之上 红遍中国南北 只要这铃声响起 100个人得有10个人掏出手机看看 当之无愧的山寨歌王 当IPhone变成街机 出厂铃声数量不多 铃声总是撞车 DIY个性铃声很有必要的 只要不选择 月亮之上 就没问题 IPhone设置铃声的方
  • IDEA 打war包部署时子模块jar包没依赖上

    使用IDEA在tomcat中部署maven多模块时出现的一个莫名的bug 首先在server中打印下 可以看见 context startup failed due to previous error see server log for