1 Reply Latest reply on Oct 22, 2018 4:44 PM by cleutomoreira

    Invalid element in SomeException - message

    bartvh

      I recently upgraded from jboss-3.2.3 jboss.net to jboss-3.2.8SP1 jboss.net, and now I discovered an incompatibility between the latter and apache axis (1.4) clients. In apache axis, user exceptions thrown in the service methods do not have a 'message' element, while they do have this element in the latest 3.2.8 jboss version.

      When the axis client calls that service and the service indeed throws the user exception, the result is (abbreviated):

      AxisFault
       faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
       faultSubcode:
       faultString: org.xml.sax.SAXException: Invalid element in my.package.SomeException - message
       faultActor:
       faultNode:
       faultDetail:
       {http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXException: Invalid element in my.package.SomeException - message
       at org.apache.axis.encoding.ser.BeanDeserializer.onStartChild(BeanDeserializer.java:258)
       at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035)
       at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1672)
       at org.apache.crimson.parser.Parser2.content(Parser2.java:1963)
       ....
       at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
       at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
       at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
       at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
       at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
       at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
       at org.apache.axis.client.Call.invoke(Call.java:2767)
       at org.apache.axis.client.Call.invoke(Call.java:2443)
       ....
      

      The exceptions where declared in the web-service.xml to use the BeanSerializerFactory for encoding.

      I found a workaround by using my own variant of the BeanSerializerFactory for encoding exceptions. That version filters out the 'message' property, but I am unsure if this is 'The Right Way' to fix this problem.