I am getting this intermittent hard to reproduce error from my
multi-threaded program on a few of the Windows 2000 machines. This time,
the error is on an element called wlseID of the WlseVersion object
returned by the getWlseVersion() method in the 'config' service. I have
examined all options, and I am not able to find the cause as it is very
intermittent.

Last time I ran into this kind of error, it was on a different element
called "deviceType" of the DeviceDetail object returned by the
getDeviceDetail() method in the inventory service.

This time I have turned on log4j debugging and captured the exact soap
request/responses that are being sent and received.

The wsdl file was generated using the java2wsdl axis utility.

The error (stack trace):
========================
2005-07-22 16:19:54,531 [_WlseProcessors:Pooled Thread:5] ERROR
org.apache.axis.client.Call.invoke() - Exception:
org.xml.sax.SAXException: Invalid element in
com.cisco.nm.wlse.xmlapi.WLSEVersion - wlseID   at
org.apache.axis.encoding.ser.BeanDeserializer.onStartChild(BeanDeseriali
zer.java:252)   at
org.apache.axis.encoding.DeserializationContextImpl.startElement(Deseria
lizationContextImpl.java:893)   at
org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:
200)    at
org.apache.axis.message.MessageElement.publishToHandler(MessageElement.j
ava:684)        at
org.apache.axis.message.RPCElement.deserialize(RPCElement.java:241)
at org.apache.axis.message.RPCElement.getParams(RPCElement.java:265)
at org.apache.axis.client.Call.invoke(Call.java:1871)   at
org.apache.axis.client.Call.invoke(Call.java:1777)      at
org.apache.axis.client.Call.invoke(Call.java:1315)      at
com.cisco.nm.wlse.xmlapi.config.gencode.ConfigSoapBindingStub.getVersion
(ConfigSoapBindingStub.java:126)        at
com.cisco.nm.mom.wlsess.WlseDevice.getWlseInfo(WlseDevice.java:786)
at
com.cisco.nm.mom.wlsess.WlseDevice.updateWlseInfo(WlseDevice.java:664)
at com.cisco.nm.mom.wlsess.WlseDevice.updateWlse(WlseDevice.java:554)
at
com.cisco.nm.mom.wlsess.RedundancyProcessor.processDcrAddModPingEvent(Re
dundancyProcessor.java:224)     at
com.cisco.nm.mom.wlsess.WlseDCREventProcessor.processUpdateEvent(WlseDCR
EventProcessor.java:254)        at
com.cisco.nm.mom.wlsess.WlseDCREventProcessor.run(WlseDCREventProcessor.
java:144)       at
com.cisco.nm.mom.util.ThreadPool$1.run(ThreadPool.java:181)

The soap request:
=================
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
 <soapenv:Body>
  <ns1:getVersion
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
xmlns:ns1="urn:com.cisco.nm.wlse.xmlapi.config"/>
 </soapenv:Body>
</soapenv:Envelope>

The soap Response:
==================
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
 <soapenv:Body>
  <ns1:getVersionResponse
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
xmlns:ns1="urn:com.cisco.nm.wlse.xmlapi.config">
   <getVersionReturn xsi:type="ns2:WLSEVersion"
xmlns:ns2="urn:com.cisco.nm.wlse.xmlapi">
    <wlseID xsi:type="xsd:int">6</wlseID>
    <hostname xsi:type="xsd:string">172.19.27.195</hostname>
    <ip xsi:type="xsd:string">172.19.27.195</ip>
    <mode xsi:type="xsd:int">0</mode>
    <ipStandby xsi:type="xsd:string" xsi:nil="true"/>
    <sysOID xsi:type="xsd:string">1.3.6.1.4.1.9.1.630</sysOID>
    <versionHardware xsi:type="xsd:string">1130</versionHardware>
    <versionSoftware xsi:type="xsd:string">2.12FCS</versionSoftware>
    <managedDeviceCount xsi:type="xsd:int">4</managedDeviceCount>
    <maxDevicesAllowed xsi:type="xsd:int">2550</maxDevicesAllowed>
    <configIdentifier xsi:type="xsd:long">0</configIdentifier>
    <configChecksum
xsi:type="xsd:string">2ca232c4dc36d9ab7708c3fccc11a3e6</configChecksum>
   </getVersionReturn>
  </ns1:getVersionResponse>
 </soapenv:Body>
</soapenv:Envelope>


The java object:
============================

package com.cisco.nm.wlse.xmlapi.src;
import java.io.Serializable;

public class WLSEVersion implements Serializable {
    public int wlseID;
    public String hostname;
    public String ip;
    public int mode;
    public String[] ipVirtual;
    public String ipStandby;
    public String sysOID;
    public String versionHardware;
    public String versionSoftware;
    public int managedDeviceCount;
    public int maxDevicesAllowed;
    public long configIdentifier;
    public String configChecksum;
}


Generated WSDL file: (Config.wsdl)
==================================

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="urn:com.cisco.nm.wlse.xmlapi.config"
xmlns="http://schemas.xmlsoap.org/wsdl/";
xmlns:apachesoap="http://xml.apache.org/xml-soap";
xmlns:impl="urn:com.cisco.nm.wlse.xmlapi.config"
xmlns:intf="urn:com.cisco.nm.wlse.xmlapi.config"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/";
xmlns:tns2="urn:com.cisco.nm.wlse.xmlapi"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
 <wsdl:types>
  <schema targetNamespace="urn:com.cisco.nm.wlse.xmlapi"
xmlns="http://www.w3.org/2001/XMLSchema";>
   <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
   <complexType name="WLSEVersion">
    <sequence>
     <element name="wlseID" type="xsd:int"/>
     <element name="hostname" nillable="true" type="xsd:string"/>
     <element name="ip" nillable="true" type="xsd:string"/>
     <element name="mode" type="xsd:int"/>
     <element maxOccurs="unbounded" name="ipVirtual" nillable="true"
type="xsd:string"/>
     <element name="ipStandby" nillable="true" type="xsd:string"/>
     <element name="sysOID" nillable="true" type="xsd:string"/>
     <element name="versionHardware" nillable="true" type="xsd:string"/>
     <element name="versionSoftware" nillable="true" type="xsd:string"/>
     <element name="managedDeviceCount" type="xsd:int"/>
     <element name="maxDevicesAllowed" type="xsd:int"/>
     <element name="configIdentifier" type="xsd:long"/>
     <element name="configChecksum" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <element name="WLSEVersion" nillable="true" type="tns2:WLSEVersion"/>
  </schema>
  <schema targetNamespace="urn:com.cisco.nm.wlse.xmlapi.config"
xmlns="http://www.w3.org/2001/XMLSchema";>
   <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
   <complexType name="Result">
    <sequence>
     <element name="code" type="xsd:int"/>
     <element name="log" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <element name="Result" nillable="true" type="impl:Result"/>
  </schema>
 </wsdl:types>

   <wsdl:message name="getConfigRequest">

   </wsdl:message>

   <wsdl:message name="setConfigRequest">

      <wsdl:part name="in0" type="xsd:string"/>

   </wsdl:message>

   <wsdl:message name="getConfigIdentifierRequest">

   </wsdl:message>

   <wsdl:message name="getConfigChecksumResponse">

      <wsdl:part name="getConfigChecksumReturn" type="xsd:string"/>

   </wsdl:message>

   <wsdl:message name="setConfigResponse">

      <wsdl:part name="setConfigReturn" type="impl:Result"/>

   </wsdl:message>

   <wsdl:message name="getConfigChecksumRequest">

   </wsdl:message>

   <wsdl:message name="updateConfigResponse">

      <wsdl:part name="updateConfigReturn" type="impl:Result"/>

   </wsdl:message>

   <wsdl:message name="updateConfigRequest">

      <wsdl:part name="in0" type="xsd:string"/>

   </wsdl:message>

   <wsdl:message name="getVersionRequest">

   </wsdl:message>

   <wsdl:message name="getConfigIdentifierResponse">

      <wsdl:part name="getConfigIdentifierReturn" type="xsd:long"/>

   </wsdl:message>

   <wsdl:message name="getVersionResponse">

      <wsdl:part name="getVersionReturn" type="tns2:WLSEVersion"/>

   </wsdl:message>

   <wsdl:message name="getConfigResponse">

      <wsdl:part name="getConfigReturn" type="xsd:string"/>

   </wsdl:message>

   <wsdl:portType name="Config">

      <wsdl:operation name="getVersion">

         <wsdl:input message="impl:getVersionRequest"
name="getVersionRequest"/>

         <wsdl:output message="impl:getVersionResponse"
name="getVersionResponse"/>

      </wsdl:operation>

      <wsdl:operation name="getConfig">

         <wsdl:input message="impl:getConfigRequest"
name="getConfigRequest"/>

         <wsdl:output message="impl:getConfigResponse"
name="getConfigResponse"/>

      </wsdl:operation>

      <wsdl:operation name="setConfig" parameterOrder="in0">

         <wsdl:input message="impl:setConfigRequest"
name="setConfigRequest"/>

         <wsdl:output message="impl:setConfigResponse"
name="setConfigResponse"/>

      </wsdl:operation>

      <wsdl:operation name="updateConfig" parameterOrder="in0">

         <wsdl:input message="impl:updateConfigRequest"
name="updateConfigRequest"/>

         <wsdl:output message="impl:updateConfigResponse"
name="updateConfigResponse"/>

      </wsdl:operation>

      <wsdl:operation name="getConfigIdentifier">

         <wsdl:input message="impl:getConfigIdentifierRequest"
name="getConfigIdentifierRequest"/>

         <wsdl:output message="impl:getConfigIdentifierResponse"
name="getConfigIdentifierResponse"/>

      </wsdl:operation>

      <wsdl:operation name="getConfigChecksum">

         <wsdl:input message="impl:getConfigChecksumRequest"
name="getConfigChecksumRequest"/>

         <wsdl:output message="impl:getConfigChecksumResponse"
name="getConfigChecksumResponse"/>

      </wsdl:operation>

   </wsdl:portType>

   <wsdl:binding name="ConfigSoapBinding" type="impl:Config">

      <wsdlsoap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>

      <wsdl:operation name="getVersion">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getVersionRequest">

            <wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="urn:com.cisco.nm.wlse.xmlapi.config" use="encoded"/>

         </wsdl:input>

         <wsdl:output name="getVersionResponse">

            <wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="urn:com.cisco.nm.wlse.xmlapi.config" use="encoded"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="getConfig">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getConfigRequest">

            <wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="urn:com.cisco.nm.wlse.xmlapi.config" use="encoded"/>

         </wsdl:input>

         <wsdl:output name="getConfigResponse">

            <wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="urn:com.cisco.nm.wlse.xmlapi.config" use="encoded"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="setConfig">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="setConfigRequest">

            <wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="urn:com.cisco.nm.wlse.xmlapi.config" use="encoded"/>

         </wsdl:input>

         <wsdl:output name="setConfigResponse">

            <wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="urn:com.cisco.nm.wlse.xmlapi.config" use="encoded"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="updateConfig">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="updateConfigRequest">

            <wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="urn:com.cisco.nm.wlse.xmlapi.config" use="encoded"/>

         </wsdl:input>

         <wsdl:output name="updateConfigResponse">

            <wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="urn:com.cisco.nm.wlse.xmlapi.config" use="encoded"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="getConfigIdentifier">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getConfigIdentifierRequest">

            <wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="urn:com.cisco.nm.wlse.xmlapi.config" use="encoded"/>

         </wsdl:input>

         <wsdl:output name="getConfigIdentifierResponse">

            <wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="urn:com.cisco.nm.wlse.xmlapi.config" use="encoded"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="getConfigChecksum">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getConfigChecksumRequest">

            <wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="urn:com.cisco.nm.wlse.xmlapi.config" use="encoded"/>

         </wsdl:input>

         <wsdl:output name="getConfigChecksumResponse">

            <wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="urn:com.cisco.nm.wlse.xmlapi.config" use="encoded"/>

         </wsdl:output>

      </wsdl:operation>

   </wsdl:binding>

   <wsdl:service name="ConfigService">

      <wsdl:port binding="impl:ConfigSoapBinding" name="Config">

         <wsdlsoap:address location="http://localhost/services/Config"/>

      </wsdl:port>

   </wsdl:service>

</wsdl:definitions>





Reply via email to