调用PROJUDI-PR的SOAP服务时XML转Java失败求助
解决PROJUDI-PR SOAP服务wsimport转换失败问题
针对你用wsimport转换PROJUDI-PR的SOAP服务WSDL遇到的问题,给你几个实用的排查和解决步骤:
先确认WSDL可达性
先用PowerShell测试能否正常获取WSDL内容,执行命令:Invoke-WebRequest -Uri "https://projudi.tjpr.jus.br/projudi/webservices/projudiIntercomunicacaoWebService222?wsdl"如果返回报错,说明是网络或目标服务的问题,先解决网络连通性(比如代理、防火墙);如果能正常返回XML内容,再往下走。
处理HTTPS证书验证问题
很多时候wsimport失败是因为HTTPS证书不被本地JDK信任,你可以尝试跳过证书检查(仅测试用,生产环境建议导入合法证书):wsimport -keep -Dcom.sun.net.ssl.checkRevocation=false -Djavax.net.ssl.trustStore=NONE https://projudi.tjpr.jus.br/projudi/webservices/projudiIntercomunicacaoWebService222?wsdl或者把目标服务的证书导入到JDK的cacerts信任库后再执行原命令。
指定输出目录和包名(规范操作)
避免生成的类散落在当前目录,建议指定输出目录和自定义包名,命令示例:wsimport -keep -d .\generated-classes -p br.tjpr.projudi.ws https://projudi.tjpr.jus.br/projudi/webservices/projudiIntercomunicacaoWebService222?wsdl-d指定生成类的输出目录,-p指定包名,方便后续项目引用。适配JDK版本
如果你的JDK版本是9及以上,wsimport被移到了jdk.xml.ws模块中,需要额外添加模块参数:wsimport --add-modules jdk.xml.ws -keep https://projudi.tjpr.jus.br/projudi/webservices/projudiIntercomunicacaoWebService222?wsdl建议优先用JDK8,因为wsimport在JDK8中是直接可用的,兼容性更好。
本地处理WSDL(应对外部XSD引用失败)
如果WSDL中引用了外部XSD文件且网络无法获取,先把WSDL下载到本地,修改里面的XSD引用路径为本地文件(或下载对应XSD到本地),再执行本地文件的wsimport:wsimport -keep .\projudi-local.wsdl
内容的提问来源于stack exchange,提问作者Deivison
相关产品推荐
相关产品推荐

