2 Replies Latest reply: May 24, 2011 7:52 AM by 864032 RSS

    Catalog Threading Issue

    843834
      I am using jdk1.6.0_13 and Metro stack 1.5 which uses JAXWS 2.1.7, JAXP 1.4 and JAXB 2.1.11). I have webservice clients bundled in a jar and deployed with war ion Tomcat 5.5.25, one client uses jax-ws-catalog and other does not.

      The Runtime uses com.sun.org.apache.xml.internal.resolver.tools.CatalogResolver. I do not have CatalogManager.properties ,so by default static catalog is used. This was working for a while on Production and oneday Tomcat was hanging on some threads and following is the the thread dump of where it was blocked. This Client is not using the jax-ws-catalog. When I try to debug this on local environment I have noticed the CatalogEntry keeps growing for every request. Each request adds 2 entries one with value 'no' and other with 'http://sams.client.cftservice.url'. And Enumeration is used to scan through the CatalogEntry vector and not Iterator.

      Why is it adding the catalog entry for every request? why is it not cached? what is static catalog means here? Am I missing some property? Please help.

      jax-ws-catalog.xml
      -----------------------------
      <?xml version="1.0" encoding="ISO-8859-1" ?>
      - <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog" prefer="system">
      <system systemId="http://sams.client.cftservice.url" uri="wsdl/cftservice_1_0.wsdl" />
      </catalog>

      Thread Dump
      --------------------
      "http-8090-Processor3492" daemon prio=3 tid=0x019e0c00 nid=0xfad9 waiting for monitor entry [0x4727e000..0x4727f970]
      java.lang.Thread.State: BLOCKED (on object monitor)
      at java.util.Vector$1.nextElement(Vector.java:300)
      - waiting to lock <0x7c6297e0> (a java.util.Vector)
      at com.sun.org.apache.xml.internal.resolver.Catalog.resolveLocalSystem(Catalog.java:1783)
      at com.sun.org.apache.xml.internal.resolver.Catalog.resolveSystem(Catalog.java:1687)
      at com.sun.org.apache.xml.internal.resolver.tools.CatalogResolver.getResolvedEntity(CatalogResolver.java:131)
      at com.sun.org.apache.xml.internal.resolver.tools.CatalogResolver.resolveEntity(CatalogResolver.java:192)
      at com.sun.xml.ws.wsdl.parser.EntityResolverWrapper.resolveEntity(EntityResolverWrapper.java:63)
      at com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.resolveWSDL(RuntimeWSDLParser.java:257)
      at com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:129)
      at com.sun.xml.ws.client.WSServiceDelegate.parseWSDL(WSServiceDelegate.java:265)
      at com.sun.xml.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:228)
      at com.sun.xml.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:176)
      at com.sun.xml.ws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:104)
      at javax.xml.ws.Service.<init>(Service.java:56)

      Thanks
      Raje