我是Maven和Spring的新手。
该项目在我的本地测试环境中运行,但不是在已部署的系统上运行。在部署的系统上:我得到了一个新安装的OpenSDK 10.0.1,Maven3.5.2的Ubuntu。我在一个不同的防火墙后面,有一个不同的keyStore和trustStore。
Maven吐了出来:
org.[%mything%]
.app:useraut:0.0.1-SNAPSHOT:的不可解析父POM无法将项目org.springframework.boot:spring-boot-starter-parent:pom:1.5.9.RELEASE从中心( java.security.InvalidAlgorithmParameterException:)传输到中心(
):https://repo.maven.apache.org/maven2:意外错误:java.lang.RuntimeException trustAnchors参数必须非空,并且'parent.relativePath‘指向没有本地POM @第14行,第10列-> Help 2
pom代码片段:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
(未定义代理)
似乎我可以找到解决方案的想法:Error - trustAnchors parameter must be non-empty,但我不知道从哪里开始配置Spring或trustStore
发布于 2018-06-02 06:42:22
根据我所发现的,Ubuntu Linux for OpenJDK Java9及更高版本的发行包中存在一个弱点。所以安装default-jdk可能会破坏一些东西。
引用自:(https://bugs.launchpad.net/ubuntu/+source/openjdk-lts/+bug/1768799) +其他证书更新。
请注意,重新安装default-jdk是可选的,并且可以继续使用openjdk-8。
解决方法:删除default-jdk,安装openjdk-8,删除openjdk-8,然后重新安装default-jdk:
sudo apt清除openjdk-默认java-common
sudo apt清除默认值-jdk java-common
sudo dpkg --purge --force-depends ca-certificates java
sudo apt安装openjdk-8-jre
sudo apt-get install ca-certificates java
sudo apt清除openjdk-8-jre
sudo apt install default-jdk
在此之后,我还发现我使用的Spring版本不能在Java 10.0.1上很好地运行,为此我又回到了Java 8.x。
发布于 2019-10-20 13:13:08
从本质上讲,它是关于ca-certificates java的。更令人沮丧的是,当您从linux发行版存储库之外获得JDK时。
这里我的线索来自:http://rabexc.org/posts/certificates-not-working-java
我修改了评论中的bash脚本
CACERTS="/home/user/cacerts"
cd /etc/ssl/certs
for file in *.pem; do
echo "Importing $file..."
openssl x509 -outform der -in "$file" -out /tmp/certificate.der
keytool -import -alias "$file" -keystore $CACERTS \
-file /tmp/certificate.der -deststorepass changeit -noprompt
done
修改第一行以适合您自己。我在debian上运行它,对于其他系统,您可能也需要更改第二行。
然后将"cacerts“文件复制到JDK中,该文件位于$JAVA_HOME/jre/lib/security/cacerts
https://stackoverflow.com/questions/50571685
复制相似问题