错误信息 Caused by: java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException at com.aliyun.oss.common.parser.JAXBResponseParser.getObject(JAXBResponseParser.java:74) ~[aliyun-sdk-oss-3.8.0.jar:na] at com.aliyun.oss.common.parser.JAXBResponseParser.parse(JAXBResponseParser.java:68) ~[aliyun-sdk-oss-3.8.0.jar:na] at com.aliyun.oss.internal.OSSErrorResponseHandler.handle(OSSErrorResponseHandler.java:69) ~[aliyun-sdk-oss-3.8.0.jar:na] at com.aliyun.oss.common.comm.ServiceClient.handleResponse(ServiceClient.java:257) ~[aliyun-sdk-oss-3.8.0.jar:na] at com.aliyun.oss.common.comm.ServiceClient.sendRequestImpl(ServiceClient.java:140) ~[aliyun-sdk-oss-3.8.0.jar:na] at com.aliyun.oss.common.comm.ServiceClient.sendRequest(ServiceClient.java:70) ~[aliyun-sdk-oss-3.8.0.jar:na] at com.aliyun.oss.internal.OSSOperation.send(OSSOperation.java:83) ~[aliyun-sdk-oss-3.8.0.jar:na] at com.aliyun.oss.internal.OSSOperation.doOperation(OSSOperation.java:145) ~[aliyun-sdk-oss-3.8.0.jar:na] at com.aliyun.oss.internal.OSSOperation.doOperation(OSSOperation.java:102) ~[aliyun-sdk-oss-3.8.0.jar:na] at com.aliyun.oss.internal.OSSOperation.doOperation(OSSOperation.java:97) ~[aliyun-sdk-oss-3.8.0.jar:na] at com.aliyun.oss.internal.OSSBucketOperation.createBucket(OSSBucketOperation.java:186) ~[aliyun-sdk-oss-3.8.0.jar:na] at com.aliyun.oss.OSSClient.createBucket(OSSClient.java:321) ~[aliyun-sdk-oss-3.8.0.jar:na] at com.aliyun.oss.OSSClient.createBucket(OSSClient.java:316) ~[aliyun-sdk-oss-3.8.0.jar:na] at com.chen.systemmonitor.alioss.AliOssConfig.createBucket(AliOssConfig.java:47) ~[classes/:na] at com.chen.systemmonitor.updown.StartupService.afterPropertiesSet(StartupService.java:73) ~[classes/:na] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1862) ~[spring-beans-5.2.1.RELEASE.jar:5.2.1.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1799) ~[spring-beans-5.2.1.RELEASE.jar:5.2.1.RELEASE] ... 16 common frames omitted Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583) ~[na:na] at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[na:na] at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[na:na] ... 33 common frames omitted
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
这个错误信息表明你的Java应用在运行时尝试加载javax.xml.bind.JAXBException
类时失败了,这是JavaBeans XML绑定API的一部分,通常用于XML的序列化和反序列化。从Java 9开始,JAXB API作为Java EE技术的一部分被移出了标准库,因此在使用Java 11或更高版本时可能会遇到这个问题。
为了解决这个问题,你需要将JAXB相关的依赖添加到你的项目中。如果你的项目是Maven项目,可以在pom.xml
文件中加入以下依赖:
<!-- JAXB API -->
<dependency>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
<version>2.3.3</version>
</dependency>
<!-- JAXB Runtime (for Java 9+) -->
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>2.3.3</version>
</dependency>
如果是Gradle项目,则在build.gradle
文件中添加:
// JAXB API
implementation 'jakarta.xml.bind:jakarta.xml.bind-api:2.3.3'
// JAXB Runtime (for Java 9+)
implementation 'org.glassfish.jaxb:jaxb-runtime:2.3.3'
确保这些依赖与你的项目兼容,并且根据你的具体需求选择合适的版本。添加这些依赖后,重新构建并运行你的应用应该可以解决NoClassDefFoundError
问题。