【问题标题】:Http 401 trying to use spring data neo4j rest dependencyHttp 401 尝试使用 spring data neo4j 依赖
【发布时间】:2013-11-02 22:20:35
【问题描述】:

我正在尝试将我的应用程序从使用嵌入式 neo4j 数据库“升级”为使用基于服务器的设置。

我使用 spring 作为框架来设置简单的存储库,它就像一个魅力。

现在我正在尝试包含 org.springframework.data:spring-data-neo4j 的依赖项,以便能够连接到 neo4j 服务器。但它对于 gradle 和 maven 以及不同版本的 spring data neo4j rest 都失败了。并且在获取 pom 时出现一个新的例外 401 Unauthorized:

* What went wrong:
  Could not resolve all dependencies for configuration ':compile'.
> Could not resolve org.neo4j:neo4j-rest-graphdb:1.9.
Required by:
  :recipeCrawlers:unspecified > org.springframework.data:spring-data-neo4j-rest:2.4.0.BUILD-SNAPSHOT
> Could not HEAD 'http://repo.spring.io/libs-snapshot/org/neo4j/neo4j-rest-graphdb/1.9/neo4j-rest-graphdb-1.9.pom'. Received status code 401 from server: Unauthorized

任何人都知道我做错了什么

我的 build.gradle 的一部分是:

buildscript {
repositories {
    maven { url 'http://m2.neo4j.org/content' }
    maven { url "http://repo.spring.io/libs-snapshot" }
    mavenLocal()
}
dependencies {
    classpath("org.springframework.boot:spring-boot-gradle-plugin:0.5.0.M5")
}
}

apply plugin: 'java'  
apply plugin: 'eclipse'
apply plugin: 'spring-boot'

jar {
baseName = 'crawlers'
version =  '0.1.0'
} 

repositories {
 mavenCentral()
 maven { url "http://repo.spring.io/libs-snapshot" }
}

dependencies {
 compile("org.springframework.boot:spring-boot-starter:0.5.0.M5")
 compile("org.springframework.data:spring-data-mongodb:1.3.2.RELEASE")
 compile("com.google.guava:guava-collections:r03")
 compile("org.apache.commons:commons-lang3:3.0")
 compile 'org.springframework.data:spring-data-neo4j:2.4.0.BUILD-SNAPSHOT'
 compile 'org.springframework.data:spring-data-neo4j-rest:2.4.0.BUILD-SNAPSHOT'
 //    compile 'org.neo4j:neo4j-rest-graphdb:1.9'

 compile 'javax.validation:validation-api:1.1.0.Final'
 compile 'org.hibernate:hibernate-validator:5.0.1.Final'

 // compile 'org.neo4j:neo4j-cypher:'

 testCompile("junit:junit:4.11")
}

task wrapper(type: Wrapper) {
 gradleVersion = '1.8'
}

使用具有相同依赖项的maven,我收到此错误:

Could not resolve dependencies for project com.emaat-sample:jar:0.0.1-SNAPSHOT: Failed to   collect dependencies for [org.springframework.boot:spring-boot-starter:jar:0.5.0.M5 (compile), org.springframework.data:spring-data-neo4j:jar:2.4.0.BUILD-SNAPSHOT (compile), org.springframework.data:spring-data-neo4j-rest:jar:2.4.0.BUILD-SNAPSHOT (compile), junit:junit:jar:4.11 (test), org.mockito:mockito-core:jar:1.9.5 (test), org.hamcrest:hamcrest-library:jar:1.3 (test)]: Failed to read artifact descriptor for org.neo4j:neo4j-rest-graphdb:jar:1.9: Could not transfer artifact org.neo4j:neo4j-rest-graphdb:pom:1.9 from/to spring-snapshots (http://repo.spring.io/libs-snapshot): Not authorized, ReasonPhrase:Unauthorized. -> [Help 1]

我的 pom 文件: http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 com.emaat 样本 0.0.1-快照 样本

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>0.5.0.M5</version>
</parent>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-neo4j</artifactId>
        <version>2.4.0.BUILD-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-neo4j-rest</artifactId>
        <version>2.4.0.BUILD-SNAPSHOT</version>
    </dependency>
</dependencies>

<!-- Package as an executable JAR -->
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

<repositories>
    <repository>
        <id>spring-snapshots</id>
        <url>http://repo.spring.io/libs-snapshot</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>
<pluginRepositories>
    <pluginRepository>
        <id>spring-snapshots</id>
        <url>http://repo.spring.io/libs-snapshot</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </pluginRepository>
</pluginRepositories>
</project>

【问题讨论】:

  • spring-data-neo4j-rest 依赖项在这里:repo.spring.io/libs-snapshot/org/springframework/data/… 不知道为什么 gradle 想要在 spring repo 上解析 org.neo4j:neo4j-rest-graphdb 而不是 m2.neo4j。组织回购
  • 嗨,迈克尔,感谢您抽出宝贵时间提供帮助。我在使用 maven 时遇到了同样的问题。我正在使用弹簧靴来简化设置,这可能是原因吗?将使用 maven pom 文件和返回的异常更新问题。
  • 请尝试将 m2.neo4j.org 作为 maven repo 添加到存储库部分。
  • 删除 spring 快照存储库,仅使用 spring-data-neo4j 和 spring-data-neo4j-rest 工件的 2.3.2.RELEASE 版本,并完全删除 spring-boot 的依赖项项目编译。现在我只有一些自动装配来设置没有 spring-boot 启动器

标签: spring neo4j spring-data-neo4j


【解决方案1】:

我在尝试解决“org.restlet.jee:org.restlet.ext.servlet:2.1.1”依赖时遇到了同样的问题,因为它对我来说是一个传递依赖。原来“org.restlet.jee:org.restlet.ext.servlet:2.1.1”在 Maven Central 中不存在,所以 gradle 将尝试 Spring IO Repository。 Spring IO Repository 有一定的限制,会针对某些依赖项抛出安全异常。

org.neo4j:neo4j-rest-graphdb:1.9 似乎也是如此。快速搜索显示这在 Maven Central 中不存在,因此您必须添加一个新存储库(我在 Spring IO 存储库之前添加了我的存储库)。通过添加存储库,我能够继续使用 Spring Boot。

我确实重新创建了您的问题,并通过将存储库部分更改为:

repositories {
    mavenCentral()
    maven { url "http://m2.neo4j.org/content/repositories/releases/" }
    maven { url "http://repo.spring.io/libs-snapshot" }
}

【讨论】:

    猜你喜欢
    • 2018-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-11
    相关资源
    最近更新 更多