WebService Client Generation Error with JDK8

后端 未结 23 2506
既然无缘
既然无缘 2020-11-27 08:50

I need to consume a web service in my project. I use NetBeans so I right-clicked on my project and tried to add a new \"Web Service Client\". Last time I checked, this was t

相关标签:
23条回答
  • 2020-11-27 09:51

    Here is a hint Hint for gradle users without admin rights: add this line to your jaxb-task:

    System.setProperty('javax.xml.accessExternalSchema', 'all')
    

    it will look like this:

    jaxb {
        System.setProperty('javax.xml.accessExternalSchema', 'all')
        xsdDir = "${project.name}/xsd"
        xjc {
            taskClassname = "com.sun.tools.xjc.XJCTask"
            args = ["-npa", "-no-header"]
        }
    }
    
    0 讨论(0)
  • 2020-11-27 09:51

    Create a file named jaxp.properties (if it doesn’t exist) under path to your "JDK version/jre/lib" and then add this line in it:

    javax.xml.accessExternalSchema = all
    
    0 讨论(0)
  • 2020-11-27 09:52

    Another solution to address: wiki.netbeans.org

    The Web Service Client wizard in the IDE parses the WSDL file when generating a web service client from a web service or WSDL file. You need to modify the IDE configuration file (netbeans.conf) to add the following switch to the netbeans_default_options. You will need to restart the IDE for the change to take effect.

    -J-Djavax.xml.accessExternalSchema=all
    

    When deploying to GlassFish you need to enable access to external schema to generate a test client for a web service. To enable access you need to modify the configuration file of the GlassFish Server (GLASSFISH_INSTALL/glassfish/domains/domain1/config/domain.xml) and add the following JVM option element. You will need to restart the server for the change to take effect.

    </java-config>
      ...
      <jvm-options>-Djavax.xml.accessExternalSchema=all</jvm-options>
    </java-config>
    
    0 讨论(0)
  • 2020-11-27 09:53

    I was also getting similar type of error in Eclipse during testing a webservice program on glassfish 4.0 web server: java.lang.AssertionError: org.xml.sax.SAXParseException; systemId: bundle://158.0:1/com/sun/tools/xjc/reader/xmlschema/bindinfo/binding.xsd; lineNumber: 52; columnNumber: 88; schema_reference: Failed to read schema document 'xjc.xsd', because 'bundle' access is not allowed due to restriction set by the accessExternalSchema property.

    I have added javax.xml.accessExternalSchema = All in jaxp.properties, but doesnot work for me.

    However I found a solution here below which work for me: For GlassFish Server, I need to modify the domain.xml of the GlassFish, path :<path>/glassfish/domains/domain1 or domain2/config/domain.xml) and add, <jvm-options>-Djavax.xml.accessExternalSchema=all</jvm-options>under the <java-config> tag

    ....
    

    <java-config> ... <jvm-options>-Djavax.xml.accessExternalSchema=all</jvm-options> </java-config> ...and then restart the GlassFish server

    0 讨论(0)
  • 2020-11-27 09:55

    A very simple portable solution would be, to place the following line of code somewhere in a crucial part of your code, a part of which you are sure that it will be run (for example right in the main method):

    System.setProperty("javax.xml.accessExternalDTD", "all");
    

    This sets the needed system property programmatically, without having to do tricky maven pom.xml changes (which for some reason didn't work for me).

    0 讨论(0)
提交回复
热议问题