[英]Create Aspose.Email attachment from contentBytes in Java
[英]aspose email with java 11
我正在尝试将 aspose 电子邮件版本升级到 20.7,并且我正在为我的项目使用 java 11,但我遇到了这些异常。 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
如果您打算在 JDK11 或更高版本中使用 EWSClient API,我们需要添加 JAXB 依赖项。 所有其他 Aspose.Email API 都可以正常工作,无需任何额外的依赖。
(JAXB API 被认为是 Java EE API,因此不再包含在 Java SE 9 中的默认类路径中。在 Java 11 中,它们完全从 JDK 中删除。stackoverflow 上描述的问题:如何解析 java.lang .NoClassDefFoundError:Java 9 1 中的 javax/xml/bind/JAXBException
Maven JAXB 依赖项:
在以下线程中也有类似的问题。 https://forum.aspose.com/t/migrating-aspose-email-to-20-7-with-java-11/219092
@MounaAL,
我想你也在Aspose.Email 论坛上关注我们这个问题。 为此,我们在问题跟踪系统中创建了一个 ID 为 EMAILJAVA-34743 的工单。 一旦我们调查并解决问题,您将在Aspose.Email论坛的相关线程中收到更新。
依赖管理允许合并和集中管理依赖版本,而无需添加所有子代继承的依赖。 当您有一组项目(即多个项目)继承了一个共同的父项目时,这尤其有用。
dependencyManagement 的另一个极其重要的用例是控制传递依赖项中使用的工件的版本。
在父 POM 中,dependencies 和 dependencyManagement 的主要区别是:
在依赖项部分中指定的工件将始终作为子模块的依赖项包含在内。
在dependencyManagement 部分中指定的工件,只有在子模块本身的dependencies 部分中也指定时才会包含在子模块中。
您在父 POM 中指定版本和/或范围,并且在指定子 POM 中的依赖项时可以将它们排除在外。 这可以帮助您对子模块的依赖项使用统一版本,而无需在每个子模块中指定版本。
例如,PARENT POM 依赖管理:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-email</artifactId>
<version>${lib.email.aspose.version}</version>
<classifier>jdk16</classifier>
</dependency>
</dependencies>
</dependencyManagement>
CHILD POM 依赖项:
<dependencies>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-email</artifactId>
<classifier>jdk16</classifier>
</dependency>
</dependencies>
我建议你用 maven 构建测试项目。 我确信子模块在依赖项部分包含 Aspose.Email 依赖项。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.