首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用java 11添加电子邮件

使用java 11添加电子邮件
EN

Stack Overflow用户
提问于 2020-09-25 23:31:45
回答 3查看 122关注 0票数 0

我正在尝试将aspose电子邮件版本升级到20.7,并且我正在为我的项目使用java11,但是我得到了这些异常。aspose电子邮件jar位于类路径中。

代码语言:javascript
运行
复制
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
EN

回答 3

Stack Overflow用户

发布于 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依赖项:

  • javax.xml.bind jaxb-api 2.3.1
  • com.sun.xml.bind jaxb-实施2.3.1
  • com.sun.xml.bind jaxb-核心2.3.0.1
  • com.sun.xml.messaging.saaj saaj-实施1.5.0

在下面的帖子中也有类似的问题被提出。https://forum.aspose.com/t/migrating-aspose-email-to-20-7-with-java-11/219092

票数 1
EN

Stack Overflow用户

发布于 2020-09-29 17:36:24

@MounaAL,

我想你在Aspose.Email forum上也在关注这个问题。为此,我们在问题跟踪系统中创建了一个ID为EMAILJAVA-34743的票据。一旦我们调查并解决此问题,您将在Aspose.Email论坛中收到相关主题的更新。

票数 0
EN

Stack Overflow用户

发布于 2021-03-17 19:41:56

Dependency Management允许合并和集中管理依赖项版本,而无需添加所有子项继承的依赖项。当您有一组项目(即多个)继承了一个共同的父级时,这一点尤其有用。

dependencyManagement的另一个非常重要的用例是控制传递依赖中使用的工件的版本。

在父POM中,依赖项和dependencyManagement之间的主要区别是:

依赖项部分中指定的工件将始终作为子模块的依赖项包括在内。

在dependencyManagement部分中指定的工件,只有在子模块本身的依赖项部分中也指定了它们时,才会包括在子模块中。

您可以在父级中指定版本和/或范围,并且可以在指定子POM中的依存关系时省略它们。这可以帮助您对子模块的依赖项使用统一的版本,而无需在每个子模块中指定版本。

例如,PARENT dependencyManagement:

代码语言:javascript
运行
复制
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.aspose</groupId>
            <artifactId>aspose-email</artifactId>
            <version>${lib.email.aspose.version}</version>
            <classifier>jdk16</classifier>
        </dependency>
    </dependencies>
</dependencyManagement>

POM子依赖项:

代码语言:javascript
运行
复制
<dependencies>
    <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-email</artifactId>
        <classifier>jdk16</classifier>
    </dependency>
</dependencies>

我建议你用maven构建测试项目。我确信该子模块在依赖项部分包含了Aspose.Email依赖项。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64067143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档