2 Replies Latest reply on Apr 3, 2012 3:16 AM by meselfe

    Trying to resolve systemId as a non-file URL

    meselfe

      Im am migrating an application to JBoss 5.1.0.GA from another app server.

       

      The web service clients in my app seem to work but I get a lot of warnings in the log:

       

       

      2012-04-02 14:18:53,660 WARN  [org.jboss.util.xml.JBossEntityResolver] (http-127.0.0.1-8080-1) Trying to resolve systemId as a non-file URL: vfszip:/C:/dev/...some.ear/lib/..some-ws-client.jar/wsdl/my.xsd

       

       

      The WSDL and any XSD imported in the WSDL are packaged inside the JAR file. The path mentioned in the log statement appears to be correct if used as a file URI.

       

      The service client is created with a reference to the WSDL inside the JAR like this:

       

           Service service = Service.create("/wsdl/my.wsdl", MY_QNAME);

       

      However this is the line of code that causes the warning in the log.

       

      What does this really mean? Performance is important so I hope the web service framework does not end up resolving the XSD from the net.

       

      I tried to package a META-INF/jax-ws-catalog.xml with the client JAR file to map the systemID to a file URI but it does not seem to be picked up by the web service framework.

       

      Any1 know how to fix this?

        • 1. Re: Trying to resolve systemId as a non-file URL
          spyhunter99

          does the client function? if so, just set the logger to error for the metadata resolver.

          • 2. Re: Trying to resolve systemId as a non-file URL
            meselfe

            Looking at the code of the JBossEntityResolver Im still not sure what the warning is about but yeah im going to adjust the logging level.

             

            URL url = new URL(systemId);

                     if (warnOnNonFileURLs && url.getProtocol().equalsIgnoreCase("file") == false)

                     {

                        log.warn("Trying to resolve systemId as a non-file URL: " + systemId);

                     }

             

                     InputStream ins = url.openStream();

                     if (ins != null)

                     {

                        inputSource = new InputSource(ins);

                        inputSource.setSystemId(systemId);

                     }        

                     else

                     {

                        log.warn("Cannot load systemId as URL: " + systemId);

                     }