我正在尝试将aspose电子邮件版本升级到20.7,并且我正在为我的项目使用java11,但是我得到了这些异常。aspose电子邮件jar位于类路径中。
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.*
com.* nested exception is java.lang.NoClassDefFoundError: com/aspose/email/MailMessage
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:502)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:84)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:282)
... 95 more
Caused by: java.lang.NoClassDefFoundError: com/aspose/email/MailMessage
at java.base/java.lang.Class.getDeclaredMethods0(Native Method)
at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3166)
at java.base/java.lang.Class.getDeclaredMethods(Class.java:2309)
at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.findPersistenceMetadata(PersistenceAnnotationBeanPostProcessor.java:382)
at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessMergedBeanDefinition(PersistenceAnnotationBeanPostProcessor.java:320)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyMergedBeanDefinitionPostProcessors(AbstractAutowireCapableBeanFactory.java:798)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:493)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:844)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:786)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:703)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:474)
... 97 more
Caused by: java.lang.ClassNotFoundException: com.aspose.email.MailMessage
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1365)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1188)
... 113 more发布于 2020-09-29 03:35:10
@MounaAL,
如果您计划将JAXB与JDK11或更高版本配合使用,我们需要添加EWSClient依赖项。所有其他Aspose.Email接口都可以正常工作,没有任何额外的依赖。
( JAXB API被认为是Java EE API,因此不再包含在Java SE 9中的默认类路径中。在Java 11中,它们已从JDK中完全删除。stackoverflow: How to resolve java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException in Java911中描述的问题
Maven JAXB依赖项:
在下面的帖子中也有类似的问题被提出。https://forum.aspose.com/t/migrating-aspose-email-to-20-7-with-java-11/219092
发布于 2020-09-29 17:36:24
@MounaAL,
我想你在Aspose.Email forum上也在关注这个问题。为此,我们在问题跟踪系统中创建了一个ID为EMAILJAVA-34743的票据。一旦我们调查并解决此问题,您将在Aspose.Email论坛中收到相关主题的更新。
发布于 2021-03-17 19:41:56
Dependency Management允许合并和集中管理依赖项版本,而无需添加所有子项继承的依赖项。当您有一组项目(即多个)继承了一个共同的父级时,这一点尤其有用。
dependencyManagement的另一个非常重要的用例是控制传递依赖中使用的工件的版本。
在父POM中,依赖项和dependencyManagement之间的主要区别是:
依赖项部分中指定的工件将始终作为子模块的依赖项包括在内。
在dependencyManagement部分中指定的工件,只有在子模块本身的依赖项部分中也指定了它们时,才会包括在子模块中。
您可以在父级中指定版本和/或范围,并且可以在指定子POM中的依存关系时省略它们。这可以帮助您对子模块的依赖项使用统一的版本,而无需在每个子模块中指定版本。
例如,PARENT dependencyManagement:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-email</artifactId>
<version>${lib.email.aspose.version}</version>
<classifier>jdk16</classifier>
</dependency>
</dependencies>
</dependencyManagement>POM子依赖项:
<dependencies>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-email</artifactId>
<classifier>jdk16</classifier>
</dependency>
</dependencies>我建议你用maven构建测试项目。我确信该子模块在依赖项部分包含了Aspose.Email依赖项。
https://stackoverflow.com/questions/64067143
复制相似问题