实际上,我正在使用Kotlin开发SpringBootV2应用程序。我在版本9中使用JDK。
在添加了依赖项sping-boot-starter-data-jpa
后,我得到了ClassNot找到错误:
原因:org。springframework。豆。工厂BeanCreationException:创建名为“entityManagerFactory”的bean时出错,该bean在类路径资源[org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]中定义:调用init方法失败;嵌套的异常是java。lang.NoClassDefFoundError:javax/transaction/SystemException
我找到了一些关于这个问题的文章,并在/src/main/kotlin下添加了模块信息。具有以下内容的java
:
module de.sample.backend {
// requires java.xml.bind;
requires javax.transaction.api;
// requires validation.api;
requires hibernate.jpa;
// requires hibernate.validator;
requires spring.beans;
requires spring.core;
requires spring.context;
requires spring.tx;
requires spring.web;
requires spring.webmvc;
requires spring.data.commons;
requires spring.data.jpa;
requires spring.boot;
requires spring.boot.autoconfigure;
// requires cache.api;
}
但是接下来我会得到一个由java引起的。lang.ArrayIndexOutOfBoundsException:32800
[错误]无法执行目标组织。阿帕奇。专家插件:maven编译器插件:3.7.0:ProjectNaehmeisterei服务上的编译(默认编译):目标组织的执行默认编译。阿帕奇。专家插件:maven编译器插件:3.7.0:编译失败:32800-
这是我完整的pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>de.sample.backend</groupId>
<artifactId>sample-services</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>sample-services</name>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!--<java.version>1.8</java.version>-->
<maven.compiler.source>1.9</maven.compiler.source>
<maven.compiler.target>1.9</maven.compiler.target>
<maven.compiler.release>9</maven.compiler.release>
<kotlin.version>1.2.20</kotlin.version>
</properties>
<dependencies>
<!-- Camunda - Spring Boot -->
<dependency>
<groupId>org.camunda.bpm.springboot</groupId>
<artifactId>camunda-bpm-spring-boot-starter-webapp</artifactId>
<version>2.3.0</version>
</dependency>
<!-- Spring Boot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- https://jaxenter.de/spring-boot-2-actuator-2-0-68749 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>
<!-- Kotlin -->
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib-jdk8</artifactId>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-reflect</artifactId>
</dependency>
<!-- JUnit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<!-- Persistence / Database -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
</dependency>
<!-- Firebase -->
<dependency>
<groupId>com.google.firebase</groupId>
<artifactId>firebase-admin</artifactId>
<version>5.9.0</version>
</dependency>
</dependencies>
<build>
<sourceDirectory>${project.basedir}/src/main/kotlin</sourceDirectory>
<testSourceDirectory>${project.basedir}/src/test/kotlin</testSourceDirectory>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<artifactId>kotlin-maven-plugin</artifactId>
<groupId>org.jetbrains.kotlin</groupId>
<configuration>
<args>
<arg>-Xjsr305=strict</arg>
</args>
<compilerPlugins>
<plugin>spring</plugin>
</compilerPlugins>
</configuration>
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-allopen</artifactId>
<version>${kotlin.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestEntries>
<Implementation-Version>${project.version}</Implementation-Version>
</manifestEntries>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>9</source>
<target>9</target>
<jdkToolchain>
<version>9</version>
</jdkToolchain>
</configuration>
</plugin>
</plugins>
</build>
</project>
我实际上不知道如何解决那个问题。在另一台使用JDK 8的计算机上,它可以很好地编译。
有人能帮忙吗?
谢谢
更新
我使用spring初始值ZR创建了一个新的spring boot项目:https://github.com/Chris81T/spring-boot-jdk9-kotlin-demo
没有任何变化,我将得到同样的错误。也许有人可以找到它来让它工作。那就太好了:-)
您需要包含所有从Java9弃用的javaee依赖项(替代方法是添加--add-模块java.se.ee
或--add-模块ALL-SYSTEM
到maven编译器选项和java启动应用程序,但不推荐,因为类将在Java11)。
1.您需要删除module-info.java文件并添加下面的依赖项。
<properties>
<argLine>--add-modules java.base</argLine>
</properties>
或者您可以切换到surefire 2.21.0-请参阅http://maven.apache.org/surefire/maven-surefire-plugin/java9.html
我认为这是一个完整的列表,您可以选择,也可以全部使用:
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-core</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>javax.activation-api</artifactId>
<version>1.2.0</version>
</dependency>
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>javax.transaction</groupId>
<artifactId>javax.transaction-api</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>javax.xml.ws</groupId>
<artifactId>jaxws-api</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>jaxws-rt</artifactId>
<version>2.3.0</version>
</dependency>
我使用spring数据来创建jpa和mongo。 附属国: spring版本是4.0。2.释放 SpringDataJPA版本是1.4。3.释放 spring数据mongodb版本为1.2。0.1释放 XML配置: 型号: 例外: 有人知道吗? 非常感谢。。
问题内容: 当我通过SOAP UI运行WS时,我间歇性地收到以下错误。有时它不工作,然后继续工作,然后有时又不工作。另一个问题是,由客户端提供的测试Web服务运行正常,没有任何问题,但是当我们切换到产生问题的产品时。谷歌搜索并做了一些更改(HttpConfig上的超时,码头maxIdleTime),但仍然无法使其工作:(任何想法,我如何可以缩小问题的根源? 只需将SOAP UI与生产端点一起使用即
问题内容: java和slf4j的一些问题使用想法制作项目,可以。但是如果我尝试用gradle制作罐子,我会遇到一些问题。 build.gradle Test.java 终奌站: 输出: 我试图使用gradle / maven(mvn包)相同的问题。由于某些原因,它无法在类路径中找到Logger和LoggerFactory。 问题答案: 谢谢迈克尔记得关于胖子的事。在您的评论尝试谷歌搜索后:“ g
问题内容: 我是Spark框架的新手。我试图使用spark和java创建一个示例应用程序。我有以下代码 Pom.xml 资源 我正在尝试使用IntelliJ IDE运行以上代码。但是我有这样的错误 我在代码中错过了什么吗? 问题答案: 您的日志中的实际错误是: 引起原因:java.lang.StringIndexOutOfBoundsException:开始0,结束3,长度2 这是由于Java 9
问题内容: 在关于sqlite的android vogella教程期间,我遇到了令人讨厌的问题,并出现以下错误: 我无数次地一步步修改所有文件,以正确重新创建R. class。关于此错误的非常奇怪的是,我不知道为什么在“ com.example.de.vogella.android”中有关于“ com.example”的任何内容。这是某种标准生成的名称吗?我所有的包/名称/路径都从未以“ com.
我不熟悉自动化。尝试简单的硒POC。下面是webdriver配置的详细信息 JDK 版本 17.0.2 硒版本 4 Chrome 浏览器版本 98.0.4758.102 (官方构建) (64 位) Chromedriver 版本相同 这是我的代码: 网络驱动程序 = 新的铬驱动程序();驱动程序(“https://demoqa.com/login”); 我做了设置属性。请找到随附的屏幕截图。 错误