我在 tomcat 8 服务器上运行了基于 java 的应用程序。最近我在 tomcat 上遇到了一些问题,所以我决定用 jetty 服务器来改变它。我的问题似乎与@Autowire 注释有关。这是我的更改和我的控制台。
我已经删除了 tomcat 的依赖项和插件,并添加了一些我在网上找到的 jetty。
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-annotations</artifactId>
<version>7.6.8.v20121106</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>apache-jsp</artifactId>
<version>9.2.7.v20150116</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>apache-jstl</artifactId>
<version>9.2.7.v20150116</version>
</dependency>
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.2.8.v20150217</version>
</plugin>
这是我的控制台错误:
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.snt.hr.service.attendances.CheckInService com.snt.hr.tasks.AttendanceSyncTask.checkInService;
最佳答案
目前您的问题没有包含足够的信息来提供正确的答案。
但是你的问题确实暗示了一些问题。
对于所有依赖项和插件,您必须在所有地方使用相同版本的 Jetty。
- Jetty 7 已停产(EOL)
- Jetty 9.2 已停产(EOL)
使用最新的、稳定的和受支持的东西。
https://www.eclipse.org/jetty/documentation/current/what-jetty-version.html
如果您使用当前和最新的第 3 方库,那么至少使用 Jetty 9.4.9 或更新版本很重要(因为各种第 3 方库已开始采用 JSR-238 多版本 JAR 存档 - https://openjdk.java.net/jeps/238 ,并且 Jetty 对此类 JAR 文件的支持仅存在于 Jetty 9.4.x 中)
请注意,一旦升级 Jetty,您的 spring 依赖项(您没有在问题中列出)可能也需要升级,因为由于各种技术原因,旧版本的 Spring 不能与新版本的 Jetty 一起使用,一些 Jetty 在做,一些 Java 在做,一些 Spring 的错误假设。
您选择的 Jetty 依赖项列表似乎很短。这是一个有效的列表,并且将帮助您开始,因为大多数更重要的依赖项将从 jetty-annotations
中提取,但这种简单的设置是不寻常的。
我看到您正在引入 JSP。 JSP 是一朵特别娇嫩的技术之花,需要相当多的设置才能正常运行。
关于java - 从 tomcat 8 迁移到 jetty 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57146128/