2 Replies Latest reply: Apr 3, 2012 3:16 AM by Scale It RSS

Trying to resolve systemId as a non-file URL

Scale It Newbie

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 Novice

    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
    Scale It Newbie

    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);

             }