Spring Web Services
  1. Spring Web Services
  2. SWS-200

Thread safe problem during wsdl generation

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Cannot Reproduce
    • Affects Version/s: 1.0.1
    • Fix Version/s: 1.0.2
    • Component/s: None
    • Labels:
      None
    • Environment:
      SunOS 5.10, JDK 1.5, Jetty container

      Description

      We are using JMeter to stress test our application and sometimes we are getting an error when retrieving wsdl. Our url is http://<server>:9090/tbstat.wsdl and we are running 10 threads requesting the wsdl 100 times each, each thread waiting 5 seconds between each request. After a while a request fails with the stack trace below. The request following the failed request may very well succeed.

      <body><h2>HTTP ERROR: 500</h2><pre>INTERNAL_SERVER_ERROR</pre>
      <p>RequestURI=/tbstat.wsdl</p><h3>Caused by:</h3><pre>java.lang.NullPointerException
      at org.apache.xerces.dom.ParentNode.nodeListItem(Unknown Source)
      at org.apache.xerces.dom.ParentNode.item(Unknown Source)
      at com.ibm.wsdl.util.xml.DOM2Writer.print(Unknown Source)
      at com.ibm.wsdl.util.xml.DOM2Writer.print(Unknown Source)
      at com.ibm.wsdl.util.xml.DOM2Writer.print(Unknown Source)
      at com.ibm.wsdl.util.xml.DOM2Writer.print(Unknown Source)
      at com.ibm.wsdl.util.xml.DOM2Writer.serializeAsXML(Unknown Source)
      at com.ibm.wsdl.extensions.schema.SchemaSerializer.marshall(Unknown Source)
      at com.ibm.wsdl.xml.WSDLWriterImpl.printExtensibilityElements(Unknown Source)
      at com.ibm.wsdl.xml.WSDLWriterImpl.printTypes(Unknown Source)
      at com.ibm.wsdl.xml.WSDLWriterImpl.printDefinition(Unknown Source)
      at com.ibm.wsdl.xml.WSDLWriterImpl.writeWSDL(Unknown Source)
      at com.ibm.wsdl.xml.WSDLWriterImpl.getDocument(Unknown Source)
      at org.springframework.ws.wsdl.wsdl11.Wsdl4jDefinition.getSource(Wsdl4jDefinition.java:75)
      at org.springframework.ws.wsdl.wsdl11.DynamicWsdl11Definition.getSource(DynamicWsdl11Definition.java:82)
      at org.springframework.ws.transport.http.WsdlDefinitionHandlerAdapter.handle(WsdlDefinitionHandlerAdapter.java:125)
      at org.springframework.ws.transport.http.MessageDispatcherServlet.doService(MessageDispatcherServlet.java:155)
      at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:475)
      at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:430)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
      at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
      at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
      at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
      at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
      at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
      at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
      at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
      at org.mortbay.jetty.Server.handle(Server.java:313)
      at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
      at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:830)
      at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
      at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
      at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
      at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:227)
      at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)

      Our spring configuration is as follows:

      <bean id="tbstat"
      class="org.springframework.ws.wsdl.wsdl11.DynamicWsdl11Definition">
      <property name="builder">
      <bean
      class="org.springframework.ws.wsdl.wsdl11.builder.XsdBasedSoap11Wsdl4jDefinitionBuilder">
      <property name="schema"
      value="classpath:no/netcom/ipl/version2_0/WOStatistics.xsd" />
      <property name="portTypeName" value="TBStatisticsPort" />
      <property name="locationUri"
      value="http://localhost:8087/tbstatisticsservice/" />
      <property name="targetNamespace"
      value="http://ipl.webservice.netcom.no/customer/wostat/" />
      </bean>
      </property>
      </bean>

        Activity

        Hide
        Arjen Poutsma added a comment -

        Apparently, the problem still occurs on Tomcat.

        Show
        Arjen Poutsma added a comment - Apparently, the problem still occurs on Tomcat.
        Hide
        Arjen Poutsma added a comment -

        Cannot reproduce this problem under Tomcat.

        Show
        Arjen Poutsma added a comment - Cannot reproduce this problem under Tomcat.
        Hide
        Arjen Poutsma added a comment -

        Closing 1.0.2 issues.

        Show
        Arjen Poutsma added a comment - Closing 1.0.2 issues.

          People

          • Assignee:
            Arjen Poutsma
            Reporter:
            Rune Hamnvik
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: