【发布时间】:2019-04-27 13:40:03
【问题描述】:
我正在尝试创建一个项目,在该项目中我将能够通过我的控制器访问 mongo db 并从用户那里获取表单。
在我的 pom 文件中,我已向 mongodb-driver 声明,但是当我尝试 `import com.mongodb.MongoClient 时出现错误 - 无法解析符号 mongodb。
我正在尝试将mongodb java驱动程序与spring boot一起使用,因为我在M101J课程中研究过如何使用。
pom - 这是文件 -
<?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>
<artifactId>form-java-spring-freemarker</artifactId>
<name>form-java-spring-freemarker</name>
<description>form-java-spring-freemarker</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
</parent>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-sync</artifactId>
<version>3.9.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
另一个文件——User.java——
package com.hellokoding.springboot;
import com.mongodb.MongoClient;
public class User {
private String firstName;
private String lastName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
文件树 -
【问题讨论】:
-
Argh 原来是 org 的遗产!显示我多么费心查看包名称。你确定你已经更新了所有项目依赖项吗?通常这种事情通常意味着 maven 还没有取消在 pom 中所做的更改。 IntelliiJ 可能会提示您打开自动更新,但您可能错过了该消息。您可以从菜单中启用自动更新。
-
运行
mvn dependency:resolve然后再试一次。 -
@EugenCovaci 很奇怪。两者都做了,仍然没有运气。 Intellij 甚至告诉我“构建成功”
-
好的!我已将 mongodb 驱动程序版本降级为 3.6.4 并且可以正常工作。谢谢你们!
-
Assaf,实际上,这是一个非常有趣的错误。我有
java: cannot access com.mongodb.MongoClientSettings class file for com.mongodb.MongoClientSettings not found issue因为spring-boot-starter-parent依赖。如果我删除它,那么我对 mongo java 驱动程序较新版本没有任何警告。所以我认为这是由于库 spring boot starter 和 mongo newer driver 3.7+ 版本之间的冲突而发生的。或者像你做的那样使用像 3.4/3.6 这样的旧版本。
标签: java mongodb spring-mvc intellij-idea