我使用maven-jaxb2生成类来调用Web服务。
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<version>0.12.3</version>
<configuration>
<schemaLanguage>WSDL</schemaLanguage>
<schemas>
<schema>
<url>https://my-secured-webservice.com/file?wsdl</url>
</schema>
</schemas>
<generateDirectory>src\main\java</generateDirectory>
<verbose>true</verbose>
</configuration>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
wsdl需要一个在我的机器上正确安装的证书。我可以使用我的浏览器访问wsdl。
我已经使用properties-maven-plugin
添加了2个属性<property>
<name>javax.net.ssl.keyStore</name>
<value>/path/to/JKS/file.jks</value>
</property>
<property>
<name>javax.net.ssl.keyStorePassword</name>
<value>my-super-secret-password</value>
</property>
我已经通过以下方式创建了我的jks文件:
keytool -importkeystore -deststorepass my-super-secret-password -destkeystore /path/to/JKS/file.jks -srckeystore /path/to/file.p12 -srcstoretype PKCS12
当我触发mvn:generate-sources时,我弹出了以下错误:
com.sun.istack.SAXParseException2; IOException thrown when processing "https://my-secured-webservice.com/file?wsdl". Exception: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target.
我做错了什么?
答案 0 :(得分:1)
对不起..我自己解决了这个问题:
我从de wsdl位置挑选了证书。 (我已使用chrome下载.crt文件)
然后:
sudo keytool -importcert -file /path/to/downloaded/certificate.crt -alias myalias -keystore $JAVA_HOME/jre/lib/security/cacerts
所以我将证书导入我的cacerts ..