开发者社区 问答 正文

JAVA中引入JDK后创建Bucket和上传文件报错

错误信息 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

展开
收起
忆莫凉娄 2019-11-28 23:53:03 2104 分享 版权
阿里云 AI 助理回答

这个错误信息表明你的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问题。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答