从WSDL生成pojos时,我得到以下异常。
外部DTD:无法读取外部DTD'XMLSchema.dtd',因为 由于受到设置的限制,不允许“http”访问 accessExternalDTD属性。
我在[WebService Client Generation Error with JDK8
中找到了解决方案[1]:WebService Client Generation Error with JDK8有人提到要添加以下jvm参数。
-Djavax.xml.accessExternalSchema =所有
如何在jvm 1.8中添加此参数(我使用的是macos)或者使用上面的jvm参数运行wsimport?
答案 0 :(得分:0)
我和你一样努力解决同样的问题。
有两种方法可以做到这一点(至少我发现的方法)。
简单的一种方法是通过具有以下具体属性的java命令将WsImport作为java类调用:
java -Djavax.xml.accessExternalSchema=all \
-Djavax.xml.accessExternalDTD=all \
-cp /path/to/jdk/lib/tools.jar com.sun.tools.internal.ws.WsImport \
-d destination -s source wsdl_file_location
说明: 我调用了从wsimport命令调用的具体类(com.sun.tools.internal.ws.WsImport)。我选择了这种方式,因为问题是wsimport没有提供任何指定其他jvm参数的选项,这种解决方法对我来说速度最快。
第二个选项是修改JVM参数。为此您可以参考: jvm configuration