aspose电子邮件与java 11

aspose电子邮件与java 11,java,eclipse,maven,aspose,Java,Eclipse,Maven,Aspose,我正在尝试将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/aspo

我正在尝试将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
@穆纳尔

如果您计划将EWSClientAPI与JDK11或更高版本一起使用,我们需要添加JAXB依赖项。所有其他Aspose.Email API正常工作,没有任何附加依赖项

(JAXB API被认为是JavaEE API,因此不再包含在JavaSE9中的默认类路径中。在Java11中,它们完全从JDK中删除。 stackoverflow上描述的问题:如何解决java.lang.NoClassDefFoundError:Java9 1中的javax/xml/bind/jaxbeException

Maven JAXB依赖项:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.aspose</groupId>
            <artifactId>aspose-email</artifactId>
            <version>${lib.email.aspose.version}</version>
            <classifier>jdk16</classifier>
        </dependency>
    </dependencies>
</dependencyManagement>
<dependencies>
    <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-email</artifactId>
        <classifier>jdk16</classifier>
    </dependency>
</dependencies>
  • javax.xml.bind jaxb api 2.3.1
  • com.sun.xml.bind jaxb impl 2.3.1
  • com.sun.xml.bind jaxb核心2.3.0.1
  • com.sun.xml.messaging.saaj-saaj impl 1.5.0
在下面的帖子中也有类似的问题。 @MounaAL

我想你也在关注我们的这个问题。我们已经在我们的问题跟踪系统中为此创建了一个ID为EMAILJAVA-34743的票证。一旦我们调查并解决了这个问题,你将在论坛的相关线程中收到更新。

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

dependencyManagement的另一个极其重要的用例是控制可传递依赖项中使用的工件的版本

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

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

在dependencyManagement部分中指定的工件,只有在子模块本身的Dependency部分中也指定时,才会包含在子模块中

您可以在父模块中指定版本和/或范围,并且在子POM中指定依赖项时可以忽略这些版本和/或范围。这有助于您对子模块的依赖项使用统一版本,而无需在每个子模块中指定版本

例如,父POM依赖管理:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.aspose</groupId>
            <artifactId>aspose-email</artifactId>
            <version>${lib.email.aspose.version}</version>
            <classifier>jdk16</classifier>
        </dependency>
    </dependencies>
</dependencyManagement>
<dependencies>
    <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-email</artifactId>
        <classifier>jdk16</classifier>
    </dependency>
</dependencies>

com.aspose
电子邮件
${lib.email.aspose.version}
jdk16
子POM依赖项:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.aspose</groupId>
            <artifactId>aspose-email</artifactId>
            <version>${lib.email.aspose.version}</version>
            <classifier>jdk16</classifier>
        </dependency>
    </dependencies>
</dependencyManagement>
<dependencies>
    <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-email</artifactId>
        <classifier>jdk16</classifier>
    </dependency>
</dependencies>

com.aspose
电子邮件
jdk16
我建议您使用maven构建测试项目。我确信子模块在依赖项部分包含Aspose.Email依赖项