jboss Caused by: LifecycleException: Error initializaing : javax.management.R

在JBoss部署过程中遇到的生命周期异常和数据源冲突问题,通过移除特定的jar文件解决了问题。分析了可能的原因包括重复的数据库驱动和jar包内的冲突,并提供了排查建议。

Caused by: LifecycleException:  Error initializaing :  javax.management.ReflectionException: Cannot find method addChild with this signature

 

jboss 部署的时候出现这个错误

 

删除WEB-INF/lib 下的j2ee.jar  jms.jar  jmx.jar 后 错误没了,  应该是部署了这些jboss已经自带的jar引起冲突造成的

 

 

org.jboss.resource.adapter.jdbc.WrapperDataSource cannot be cast to javax.sql.DataSource

 

可能是项目中的数据库驱动和服务器上数据库驱动重复,导致冲突

 这个很隐蔽,可能有的包中含有Javax.sql.DataSource,也会冲突,我查到的就有一个,class12.jar

 

 

delete    xerces.jar

 

 

http://mingxiao2010.blog.163.com/blog/static/86190481201003144336547/

`javax.ws.rs.core.Configuration` 类属于 JAX-RS(Java API for RESTful Web Services)规范的一部分,通常在使用 Jersey 或其他支持 JAX-RS 的框架开发 RESTful 服务时会用到。当运行 Java 应用程序时出现 `java.lang.ClassNotFoundException: javax.ws.rs.core.Configuration` 错误,表示运行时环境中缺少相关的 JAX-RS 实现库。 ### 常见原因 1. **依赖缺失**:项目未正确引入 JAX-RS 的实现依赖,例如 Jersey、RESTEasy 等。 2. **构建配置错误**:Maven 或 Gradle 构建文件中虽然声明了相关依赖,但构建过程中未能将其打包进最终的部署包(如 WAR 或 JAR 文件)。 3. **部署环境问题**:应用服务器或容器本身不包含 JAX-RS 实现,并且应用程序也没有自带相关依赖。 4. **模块化 JDK 限制(JDK9+)**:某些 JDK9 及以上版本默认不再包含部分旧版 Java EE 模块,需要显式添加依赖[^4]。 ### 解决方案 #### Maven 配置修复 如果使用的是 Jersey 作为 JAX-RS 实现,可以在 `pom.xml` 中添加如下依赖: ```xml <dependency> <groupId>org.glassfish.jersey.core</groupId> <artifactId>jersey-server</artifactId> <version>2.35</version> </dependency> <dependency> <groupId>org.glassfish.jersey.containers</groupId> <artifactId>jersey-container-servlet</artifactId> <version>2.35</version> </dependency> <dependency> <groupId>org.glassfish.jersey.inject</groupId> <artifactId>jersey-hk2</artifactId> <version>2.35</version> </dependency> ``` 如果使用的是 RESTEasy,则可以添加以下依赖: ```xml <dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>resteasy-jaxrs</artifactId> <version>4.7.0.Final</version> </dependency> <dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>resteasy-servlet-initializer</artifactId> <version>4.7.0.Final</version> </dependency> ``` 确保上述依赖已成功下载并包含在最终的部署包中[^2]。 #### Gradle 配置示例 若使用 Gradle 构建工具,可参考如下配置: ```groovy implementation 'org.glassfish.jersey.core:jersey-server:2.35' implementation 'org.glassfish.jersey.containers:jersey-container-servlet:2.35' implementation 'org.glassfish.jersey.inject:jersey-hk2:2.35' ``` #### 检查部署结构 进入部署目录(如 Tomcat 的 `webapps` 子目录),确认 `WEB-INF/lib/` 下是否包含了 JAX-RS 相关的 JAR 包。如果没有,可能是构建过程没有正确打包这些依赖,检查构建脚本和插件配置(如 `maven-war-plugin` 或 `gradle war plugin`)[^3]。 #### JDK 版本兼容性处理 对于 JDK9 及以上版本,由于模块系统(JPMS)的变化,一些原本内置的 Java EE API 不再默认可用。即使项目中已经引入了正确的依赖,也需要确保 JVM 启动参数中启用相应的模块,例如: ```bash --add-modules java.xml.bind,java.activation ``` 不过针对 JAX-RS 本身,更推荐的做法是通过显式添加 Jersey 或 RESTEasy 等框架依赖来替代隐式依赖的方式[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值