我正在编写一个Spring Boot应用程序,它需要从ibm notes数据库中获取记录。为此,我必须使用无法作为Maven依赖项使用的jar库。因此,我将jar放在lib / com / ibm / notes / 1.0.0 / notes-1.0.0.jar的项目主页中,并将其作为本地存储库添加到pom文件中,如下所示。
<repositories>
<repository>
<id>ProjectRepo</id>
<url>file://${project.basedir}/lib</url>
</repository>
</repositories>
<dependency>
<groupId>com.ibm</groupId>
<artifactId>notes</artifactId>
<version>1.0.0</version>
</dependency>
在Eclipse IDE中执行时,我的应用程序运行没有问题。但是当我通过右键单击eclipse中的pom文件来清理/安装相同的项目时,构建成功,并显示以下警告。
[INFO] -------------------------------- [jar ] --------------------------------- [警告]的POM com.ibm:notes:jar:1.0.0丢失,没有依赖项信息 可用
但是应用程序执行在命令行失败。以下是我得到的错误。
启动ApplicationContext时出错。显示条件报告 在启用“调试”的情况下重新运行您的应用程序。 2019-08-17 16:37:41.450 错误17868 --- [main] o.s.boot.SpringApplication
:应用程序运行失败org.springframework.beans.factory.UnsatisfiedDependencyException: 创建名称为“ craNotesService”的bean时出错:不满意 通过字段“存储库”表达的依赖性;嵌套异常为 org.springframework.beans.factory.BeanCreationException:错误 创建名称为“ craNotesRepository”的bean:查找方法解析 失败嵌套异常是java.lang.IllegalStateException:失败 内省级 [q2c.project7.craservice.repository.CraNotesRepository]来自 类加载器 [org.springframework.boot.loader.LaunchedURLClassLoader@5c7fa833] 在org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor $ AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:596)处 〜[spring-beans-5.1.9.RELEASE.jar!/:5.1.9.RELEASE]
请问如何解决此问题?
CraNotesRepository是利用上面指定的外部jar的类。
答案 0 :(得分:0)
尝试从 cmd 这样手动安装notes-1.0.0.jar
mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> \
-DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>
答案 1 :(得分:0)
我正在eclipse项目中使用32位jdk进行开发,而我的机器具有64位jdk。 Notes jar仅支持32位。因此,在64位jdk中运行它无法从Notes jar文件中加载类。将机器jdk也更改为32位即可解决此问题。