ava.lang.IllegalStateException: Unable to complete the scan for annotations for web application

本文详细记录了在启动Tomcat时遇到的严重错误,包括生命周期异常和非法状态异常,并分享了通过调整JVM参数及解决类加载循环依赖问题的方法。
严重: ContainerBase.addChild: start: 
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/sateproject]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
	at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:586)
	at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1750)
	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IllegalStateException: Unable to complete the scan for annotations for web application [/saproject] due to a StackOverflowError. Possible root causes include a too low setting for -Xss and illegal cyclic inheritance dependencies. The class hierarchy being processed was [oracle.net.aso.C00->oracle.net.aso.C12->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object->java.lang.Object]
	at org.apache.catalina.startup.ContextConfig.checkHandlesTypes(ContextConfig.java:2066)
	at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2012)
	at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1961)
	at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1936)
	at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1897)
	at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1149)
	at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:771)
	at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:305)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5066)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	... 10 more

十二月 02, 2019 2:51:31 下午 org.apache.catalina.startup.HostConfig deployDescriptor
严重: Error deploying configuration descriptor F:\Workspace\eclipseluna\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\conf\Catalina\localhost\sateproject.xml
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/sateproject]]
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:729)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
	at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:586)
	at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1750)
	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

采用这种方法:
https://blog.youkuaiyun.com/k18381315803/article/details/81004101
在tomcat/bin/catalina.sh中添加如下代码:

JAVA_OPTS="-server -Xms1024m -Xmx2048m -Xss1024K -XX:PermSize=1024m -XX:MaxPermSize=2048m"

仍然报错
根据
https://stackoverflow.com/questions/46520372/opencms-in-java
发现有lib下有两个ojdbc包,删除掉一个即可

### Apache Zeppelin MultiException IllegalStateException IllegalArgumentException解决方案 在解决 Apache Zeppelin 中的 `MultiException` 问题时,需要明确其根本原因。根据提供的引用信息[^1],`MultiException` 包含了多个异常类型,其中包括 `java.lang.NullPointerException`、`java.lang.IllegalStateException` 和 `java.lang.IllegalArgumentException`。以下是对这些异常的具体分析和解决方案。 #### 1. 异常分析 - **`java.lang.NullPointerException`** 此异常通常表明某个对象未被正确初始化或赋值即被调用。在 Apache Zeppelin 的上下文中,这可能是由于某些配置文件缺失或依赖项未正确加载导致的。需要检查 Zeppelin 的配置文件(如 `zeppelin-site.xml`)以及相关依赖库是否完整。 - **`java.lang.IllegalStateException: Unable to perform operation`** 此异常表明在不适当的状态下调用了某个操作。例如,引用中提到的 `create on weblogic.management.partition.admin.PartitionManagerService` 和 `resolve on com.oracle.weblogic.lifecycle.core.PartitionLCMService`,这可能与 WebLogic 管理服务的状态有关。确保所有分区和服务都已正确启动并处于活动状态。 - **`java.lang.IllegalArgumentException: While attempting to resolve the dependencies`** 此异常通常与依赖解析失败有关。例如,引用中提到的 `com.oracle.weblogic.lifecycle.core.PartitionLCMService` 的依赖解析错误。需要检查 Zeppelin 的依赖管理工具(如 Maven 或 Gradle),确保所有依赖项版本兼容且无冲突。 #### 2. 解决方案 ##### (1) 检查配置文件 确保 Zeppelin 的配置文件(如 `zeppelin-site.xml` 和 `zeppelin-env.sh`)中没有遗漏或错误配置。特别是以下参数: ```properties zeppelin.interpreter.dir zeppelin.notebook.dir zeppelin.dep.localrepo ``` 如果这些路径不存在或不可访问,可能会引发 `NullPointerException` 或 `IllegalArgumentException`。 ##### (2) 更新依赖项 根据引用中的信息[^2],某些问题可以通过降级或升级依赖版本解决。例如: - 如果遇到 `PHOENIX-4056`,可以尝试降级 Phoenix 版本。 - 如果遇到 `SPARK-22968`,建议升级到 Spark 2.4.0 或更高版本以应用最新的补丁。 ##### (3) 调试 SQL 查询解析 如果问题出现在 SQL 查询解析阶段,可以参考引用中的代码片段[^3]。确保 SQL 语句语法正确,并验证 `TableEnvironmentImpl#sqlQuery` 方法中的 `parser.parse(statement)` 是否能够成功解析输入语句。如果解析失败,可能需要调整 SQL 语句或修复底层解析器逻辑。 ##### (4) 检查 Protobuf 序列化/反序列化 如果使用了 Protobuf 进行数据序列化/反序列化,可以参考引用中的代码实现[^4]。确保 `ProtobufSerdes` 类中的 `Parser<T>` 配置正确,并验证 Kafka Streams 的消息格式是否符合预期。 #### 3. 示例代码 以下是一个简单的示例,展示如何通过捕获异常来诊断问题: ```java try { // 初始化 Zeppelin 相关组件 initializeZeppelinComponents(); } catch (NullPointerException e) { System.err.println("NullPointerException: " + e.getMessage()); // 检查配置文件是否完整 } catch (IllegalStateException e) { System.err.println("IllegalStateException: " + e.getMessage()); // 检查服务状态是否正常 } catch (IllegalArgumentException e) { System.err.println("IllegalArgumentException: " + e.getMessage()); // 检查依赖项是否正确解析 } ``` #### 4. 注意事项 - 确保所有依赖项版本一致,避免因版本冲突导致的异常。 - 如果问题仍然存在,可以启用 Zeppelin 的调试日志,进一步定位问题根源。 - 在生产环境中,建议定期更新 Zeppelin 及其依赖项,以获取最新的安全补丁和功能改进。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值