Getting SAXException - Invalid element error
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:int6/wlseID hostname xsi:type=xsd:string172.19.27.195/hostname ip xsi:type=xsd:string172.19.27.195/ip mode xsi:type=xsd:int0/mode ipStandby xsi:type=xsd:string xsi:nil=true/ sysOID xsi:type=xsd:string1.3.6.1.4.1.9.1.630/sysOID versionHardware xsi:type=xsd:string1130/versionHardware versionSoftware xsi:type=xsd:string2.12FCS/versionSoftware managedDeviceCount xsi:type=xsd:int4/managedDeviceCount maxDevicesAllowed xsi:type=xsd:int2550/maxDevicesAllowed configIdentifier xsi:type=xsd:long0/configIdentifier configChecksum xsi:type=xsd:string2ca232c4dc36d9ab7708c3fccc11a3e6/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/;
RE: SAXException - Invalid element error
Thomas Manes [mailto:[EMAIL PROTECTED] Sent: Friday, May 13, 2005 7:15 AM To: axis-user@ws.apache.org Subject: Re: SAXException - Invalid element error Could you send us your WSDL and SOAP messages? On 5/12/05, Bala Ramakrishnan (balar) [EMAIL PROTECTED] wrote: This topic seems to have been discussed before, but I could not get a clear picture. I am getting the error below: org.xml.sax.SAXException: Invalid element in com.cisco.nm.wlse.xmlapi.inventory.gencode.DeviceDetail - deviceType 2005-04-28 10:33:19,828 [_WlseProcessors:Pooled Thread:2] ERROR com.cisco.nm.mom.util.WlseXmlApiHelper.invoke() - AxisFault faultCode: {http://xml.apache.org/axis/}Server.userException faultString: org.xml.sax.SAXException: Invalid element in com.cisco.nm.wlse.xmlapi.inventory.gencode.DeviceDetail - deviceType faultActor: null faultDetail: stackTrace: org.xml.sax.SAXException: Invalid element in com.cisco.nm.wlse.xmlapi.inventory.gencode.DeviceDetail - deviceType at org.apache.axis.encoding.ser.BeanDeserializer.onStartChild(BeanDeseria lizer.java:252) at org.apache.axis.encoding.DeserializationContextImpl.startElement(Deser ializationContextImpl.java:893) at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.jav a:200) at org.apache.axis.message.MessageElement.publishToHandler(MessageElement .java: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.inventory.gencode.InventorySoapBindingStub.ge tDeviceDetail(InventorySoapBindingStub.java:471) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.j ava:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccess orImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.cisco.nm.mom.util.WlseXmlApiHelper.invoke(WlseXmlApiHelper.java:15 2) at $Proxy3.getDeviceDetail(Unknown Source) at com.cisco.nm.mom.wlsess.AccessPoints.updateAPInfo(AccessPoints.java:80 ) at com.cisco.nm.mom.wlsess.WlseDevice.updateWlseInfo(WlseDevice.java:591) at com.cisco.nm.mom.wlsess.WlseDevice.updateWlse(WlseDevice.java:443) at com.cisco.nm.mom.wlsess.RedundancyProcessor.processDcrAddModPingEvent( RedundancyProcessor.java:187) at com.cisco.nm.mom.wlsess.WlseDCREventProcessor.processUpdateEvent(WlseD CREventProcessor.java:219) at com.cisco.nm.mom.wlsess.WlseDCREventProcessor.run(WlseDCREventProcesso r.java:123) at com.cisco.nm.mom.util.ThreadPool$1.run(ThreadPool.java:89) == The class com.cisco.nm.wlse.xmlapi.inventory.gencode.DeviceDetail is included below: /** * DeviceDetail.java * * This file was auto-generated from WSDL * by the Apache Axis WSDL2Java emitter. */ package com.cisco.nm.wlse.xmlapi.inventory.gencode; public class DeviceDetail implements java.io.Serializable { private com.cisco.nm.wlse.xmlapi.DeviceId id; private java.lang.String ipAddress; private java.lang.String hostname; private java.lang.String product; private java.lang.String version; private java.lang.String deviceType; private long timeLastDiscovered; private java.lang.String sysObjectID; private java.lang.String sysName; private java.lang.String sysLocation; private java.lang.String subnet; private java.lang.String dnsName; private java.lang.String userDefinedDescr; private java.lang.String[] SSIDs; private int[] vlanIDs; private java.lang.String[] macAddresses; private java.lang.String[] radioMacAddresses; private java.lang.String serialNumber; private int wdsMode; } = I have seen discussions pertaining to such problems if there are array or complex types in the class. This code was generated by wsdl2java utility and the wsdl itself was generated from java2wsdl. Axis 1.0 is the version being used. Is this problem fixed in the latest release Axis 1.2? if not, am I doing something wrong? All answers and help are very much appreciated. Thanks for your time.
SAXException - Invalid element error
This topic seems to have been discussed before, but I could not get a clear picture. I am getting the error below: org.xml.sax.SAXException: Invalid element in com.cisco.nm.wlse.xmlapi.inventory.gencode.DeviceDetail - deviceType2005-04-28 10:33:19,828 [_WlseProcessors:Pooled Thread:2] ERROR com.cisco.nm.mom.util.WlseXmlApiHelper.invoke() - AxisFaultfaultCode: {http://xml.apache.org/axis/}Server.userExceptionfaultString: org.xml.sax.SAXException: Invalid element in com.cisco.nm.wlse.xmlapi.inventory.gencode.DeviceDetail - deviceTypefaultActor: nullfaultDetail: stackTrace: org.xml.sax.SAXException: Invalid element in com.cisco.nm.wlse.xmlapi.inventory.gencode.DeviceDetail - deviceTypeat org.apache.axis.encoding.ser.BeanDeserializer.onStartChild(BeanDeserializer.java:252)at org.apache.axis.encoding.DeserializationContextImpl.startElement(DeserializationContextImpl.java:893)at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:200)at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java: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.inventory.gencode.InventorySoapBindingStub.getDeviceDetail(InventorySoapBindingStub.java:471)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:324)at com.cisco.nm.mom.util.WlseXmlApiHelper.invoke(WlseXmlApiHelper.java:152)at $Proxy3.getDeviceDetail(Unknown Source)at com.cisco.nm.mom.wlsess.AccessPoints.updateAPInfo(AccessPoints.java:80)at com.cisco.nm.mom.wlsess.WlseDevice.updateWlseInfo(WlseDevice.java:591)at com.cisco.nm.mom.wlsess.WlseDevice.updateWlse(WlseDevice.java:443)at com.cisco.nm.mom.wlsess.RedundancyProcessor.processDcrAddModPingEvent(RedundancyProcessor.java:187)at com.cisco.nm.mom.wlsess.WlseDCREventProcessor.processUpdateEvent(WlseDCREventProcessor.java:219)at com.cisco.nm.mom.wlsess.WlseDCREventProcessor.run(WlseDCREventProcessor.java:123)at com.cisco.nm.mom.util.ThreadPool$1.run(ThreadPool.java:89) == The class com.cisco.nm.wlse.xmlapi.inventory.gencode.DeviceDetailis included below: /*** DeviceDetail.java** This file was auto-generated from WSDL* by the Apache Axis WSDL2Java emitter.*/ package com.cisco.nm.wlse.xmlapi.inventory.gencode; public class DeviceDetail implements java.io.Serializable { private com.cisco.nm.wlse.xmlapi.DeviceId id; private java.lang.String ipAddress; private java.lang.String hostname; private java.lang.String product; private java.lang.String version; private java.lang.String deviceType; private long timeLastDiscovered; private java.lang.String sysObjectID; private java.lang.String sysName; private java.lang.String sysLocation; private java.lang.String subnet; private java.lang.String dnsName; private java.lang.String userDefinedDescr; private java.lang.String[] SSIDs; private int[] vlanIDs; private java.lang.String[] macAddresses; private java.lang.String[] radioMacAddresses; private java.lang.String serialNumber; private int wdsMode; } = I have seen discussions pertaining to such problems if there are array or complex types in the class. This code was generated by wsdl2java utility and the wsdl itself was generated from java2wsdl. Axis 1.0 is the version being used. Is this problem fixed in the latest release Axis 1.2? if not, am I doing something wrong? All answers and help are very much appreciated. Thanks for your time.