我目前正在尝试设置一个maven项目,该项目根据一些WSDL文件生成一些Java代码。
不幸的是我遇到了一些问题,因为我的测试环境没有有效的SSL证书(我已经通过使用chrome证实了这一点)。因为这是在测试环境中发生的,所以我并不关心安全性。我只是希望我的代码生成工作。
以下显示了我目前如何使用插件cxf-codegen-plugin
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>3.1.8</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<sourceRoot>${project.build.directory}/generated/cxf</sourceRoot>
<defaultOptions>
<bindingFiles>
<bindingFile>${basedir}/src/main/jaxb/jaxb.bindings.xml</bindingFile>
</bindingFiles>
<packagenames>
<packagename>foo.bar</packagename>
</packagenames>
<extraargs>
<extraarg>-client</extraarg>
</extraargs>
</defaultOptions>
<wsdlOptions>
<wsdlOption>
<wsdl>[Removed URL]</wsdl>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>
当我运行mvn clean install maven时输出以下错误
[错误]无法在项目TestClient上执行目标org.apache.cxf:cxf-codegen-plugin:3.1.8:wsdl2java(generate-sources): 执行生成目标org.apache.cxf:cxf-codegen-plugin:3.1.8:wsdl2java失败:org.apache.cxf.wsdl11.WSDLRuntimeException: 无法创建wsdl定义[已删除的URL] WSDLException:faultCode = PARSER_ERROR:解析[已删除的URL]时出现问题: javax.net.ssl.SSLHandshakeException:java.security.cert.CertificateException:找不到主题备用DNS名称匹配.... - &GT; [帮助1]
所以我的问题基本上是否有一些方法来配置cxf-codegen-plugin s.t.它只是忽略了所有安全问题并继续生成Java代码?
答案 0 :(得分:0)
不知道是否可以忽略但您可以将证书添加到本地证书存储区,这似乎也解决了您的问题。
在不了解有关您的开发环境的任何进一步细节的情况下,这些说明可能直接适用,或至少稍作修改。
我在Ishwara Varnasi的博客文章中找到了帮助:
http://ibswings.blogspot.fi/2008/12/running-axis-wsdl2java-on-https-wsdl.html
短暂的步骤:
更详细的步骤:
使用适当的工具导入证书,例如:
keytool -importcert -trustcacerts -keystore cacerts -storepass changeit -alias aliasname -file cert_to_import_file_name
至少在我的情况下,storepass真的是“改变了”。所以没有意义将其改为任何真实的&#39;当我第一次想到它时,就会存货。
如果使用多个java版本或将其添加到所有版本,请务必将证书导入正确的JRE。