Hello,

does anyone have a clue?
A way to solve the problem?
An explanation ?

I'm still stuck


Regards!


Daniel Langevin

-----Message d'origine-----
De : Daniel Langevin <[email protected]> 
Envoyé : 17 août 2021 15:32
À : [email protected]
Objet : Camel-ldap xtream issue

Hi,

I try to modify an application who retrieve LDAP search, Convert result in XML 
and generate HTML with camel-saxon.

CAMEL 3.11.1 Karaf 4.2.10


But facing a problem.

I Add a variable in my Search, (networkAddress) this new variable contains 
String encoded in a special format and also contains null value 

When I use xsteam to format the body who contains 
ArrayList<javax.naming.directory.SearchResult>
I received an error.

...
<to 
uri="ldap:ldapSHQinterne?base=ou=xxxxxxxxxx,o=yyyyyyyyyy&amp;returnedAttributes=ou,sn,givenName,fullName,telephoneNumber,physicalDeliveryOfficeName,mail,pwmLastPwdUpdate,pwmResponseSet,Photo,passwordExpirationTime,loginGraceRemaining,loginDisabled,loginTime,lockedByIntruder,networkAddress"
 /> <marshal><xstream/></marshal>  .... ERROR RECEIVE HERE <to 
uri="xslt-saxon:file:/opt/repo-XXX/SIN/eDirSecretStore.xsl"/>
...

---- Debugging information ----
message             : Failed calling method
cause-exception     : com.thoughtworks.xstream.io.StreamException
cause-message       :
method              : com.sun.jndi.ldap.LdapAttribute.writeObject()
-------------------------------
        at 
com.thoughtworks.xstream.core.util.SerializationMembers.callWriteObject(SerializationMembers.java:158)
 ~[!/:?]
        at 
com.thoughtworks.xstream.converters.reflection.SerializableConverter.doMarshal(SerializableConverter.java:257)
 ~[!/:?]
        at 
com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.marshal(AbstractReflectionConverter.java:90)
 ~[!/:?]
        at 
com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
 ~[!/:?]
        at 
com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58)
 ~[!/:?]
        at 
com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:43)
 ~[!/:?]
        at 
com.thoughtworks.xstream.core.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:87)
 ~[!/:?]
        at 
com.thoughtworks.xstream.converters.reflection.SerializableConverter$1.writeToStream(SerializableConverter.java:139)
 ~[!/:?]
        at 
com.thoughtworks.xstream.core.util.CustomObjectOutputStream.writeObjectOverride(CustomObjectOutputStream.java:87)
 ~[!/:?]
        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:344) 
~[?:1.8.0_121]
        at 
javax.naming.directory.BasicAttributes.writeObject(BasicAttributes.java:293) 
~[?:1.8.0_121]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[?:1.8.0_121]
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
~[?:1.8.0_121]
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 ~[?:1.8.0_121]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_121]
        at 
com.thoughtworks.xstream.core.util.SerializationMembers.callWriteObject(SerializationMembers.java:154)
 ~[!/:?]
        ... 73 more
Caused by: com.thoughtworks.xstream.io.StreamException:
        at 
com.thoughtworks.xstream.io.xml.StaxWriter.setValue(StaxWriter.java:160) ~[!/:?]
        at 
com.thoughtworks.xstream.io.WriterWrapper.setValue(WriterWrapper.java:45) 
~[!/:?]
        at 
com.thoughtworks.xstream.converters.SingleValueConverterWrapper.marshal(SingleValueConverterWrapper.java:45)
 ~[!/:?]
        at 
com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:50)
 ~[!/:?]
        at 
com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58)
 ~[!/:?]
        at 
com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:43)
 ~[!/:?]
        at 
com.thoughtworks.xstream.core.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:87)
 ~[!/:?]
        at 
com.thoughtworks.xstream.converters.reflection.SerializableConverter$1.writeToStream(SerializableConverter.java:139)
 ~[!/:?]
        at 
com.thoughtworks.xstream.core.util.CustomObjectOutputStream.writeObjectOverride(CustomObjectOutputStream.java:87)
 ~[!/:?]
        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:344) 
~[?:1.8.0_121]
        at 
javax.naming.directory.BasicAttribute.writeObject(BasicAttribute.java:507) 
~[?:1.8.0_121]
        at sun.reflect.GeneratedMethodAccessor124.invoke(Unknown Source) ~[?:?]
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 ~[?:1.8.0_121]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_121]
        at 
com.thoughtworks.xstream.core.util.SerializationMembers.callWriteObject(SerializationMembers.java:154)
 ~[!/:?]
        at 
com.thoughtworks.xstream.converters.reflection.SerializableConverter.doMarshal(SerializableConverter.java:257)
 ~[!/:?]
        at 
com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.marshal(AbstractReflectionConverter.java:90)
 ~[!/:?]
        at 
com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
 ~[!/:?]
        at 
com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58)
 ~[!/:?]
        at 
com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:43)
 ~[!/:?]
        at 
com.thoughtworks.xstream.core.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:87)
 ~[!/:?]
        at 
com.thoughtworks.xstream.converters.reflection.SerializableConverter$1.writeToStream(SerializableConverter.java:139)
 ~[!/:?]
        at 
com.thoughtworks.xstream.core.util.CustomObjectOutputStream.writeObjectOverride(CustomObjectOutputStream.java:87)
 ~[!/:?]
        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:344) 
~[?:1.8.0_121]
        at 
javax.naming.directory.BasicAttributes.writeObject(BasicAttributes.java:293) 
~[?:1.8.0_121]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[?:1.8.0_121]
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
~[?:1.8.0_121]
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 ~[?:1.8.0_121]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_121]
        at 
com.thoughtworks.xstream.core.util.SerializationMembers.callWriteObject(SerializationMembers.java:154)
 ~[!/:?]
        ... 73 more
Caused by: com.ctc.wstx.exc.WstxIOException: Invalid null character in text to 
output
        at 
com.ctc.wstx.sw.BaseStreamWriter.writeCharacters(BaseStreamWriter.java:467) 
~[!/:6.2.6]
        at 
com.thoughtworks.xstream.io.xml.StaxWriter.setValue(StaxWriter.java:158) ~[!/:?]
        at 
com.thoughtworks.xstream.io.WriterWrapper.setValue(WriterWrapper.java:45) 
~[!/:?]
        at 
com.thoughtworks.xstream.converters.SingleValueConverterWrapper.marshal(SingleValueConverterWrapper.java:45)
 ~[!/:?]
        at 
com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:50)
 ~[!/:?]
        at 
com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58)
 ~[!/:?]
        at 
com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:43)
 ~[!/:?]
        at 
com.thoughtworks.xstream.core.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:87)
 ~[!/:?]
        at 
com.thoughtworks.xstream.converters.reflection.SerializableConverter$1.writeToStream(SerializableConverter.java:139)
 ~[!/:?]
        at 
com.thoughtworks.xstream.core.util.CustomObjectOutputStream.writeObjectOverride(CustomObjectOutputStream.java:87)
 ~[!/:?]
        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:344) 
~[?:1.8.0_121]
        at 
javax.naming.directory.BasicAttribute.writeObject(BasicAttribute.java:507) 
~[?:1.8.0_121]
        at sun.reflect.GeneratedMethodAccessor124.invoke(Unknown Source) ~[?:?]
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 ~[?:1.8.0_121]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_121]
        at 
com.thoughtworks.xstream.core.util.SerializationMembers.callWriteObject(SerializationMembers.java:154)
 ~[!/:?]
        at 
com.thoughtworks.xstream.converters.reflection.SerializableConverter.doMarshal(SerializableConverter.java:257)
 ~[!/:?]
        at 
com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.marshal(AbstractReflectionConverter.java:90)
 ~[!/:?]
        at 
com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
 ~[!/:?]
        at 
com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58)
 ~[!/:?]
        at 
com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:43)
 ~[!/:?]
        at 
com.thoughtworks.xstream.core.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:87)
 ~[!/:?]
        at 
com.thoughtworks.xstream.converters.reflection.SerializableConverter$1.writeToStream(SerializableConverter.java:139)
 ~[!/:?]
        at 
com.thoughtworks.xstream.core.util.CustomObjectOutputStream.writeObjectOverride(CustomObjectOutputStream.java:87)
 ~[!/:?]
        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:344) 
~[?:1.8.0_121]
        at 
javax.naming.directory.BasicAttributes.writeObject(BasicAttributes.java:293) 
~[?:1.8.0_121]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[?:1.8.0_121]
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
~[?:1.8.0_121]
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 ~[?:1.8.0_121]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_121]
        at 
com.thoughtworks.xstream.core.util.SerializationMembers.callWriteObject(SerializationMembers.java:154)
 ~[!/:?]
        ... 73 more
Caused by: java.io.IOException: Invalid null character in text to output
        at 
com.ctc.wstx.api.InvalidCharHandler$FailingHandler.convertInvalidChar(InvalidCharHandler.java:51)
 ~[!/:6.2.6]
        at com.ctc.wstx.sw.XmlWriter.handleInvalidChar(XmlWriter.java:629) 
~[!/:6.2.6]
        at 
com.ctc.wstx.sw.BufferingXmlWriter.writeCharacters(BufferingXmlWriter.java:497) 
~[!/:6.2.6]
        at 
com.ctc.wstx.sw.BaseStreamWriter.writeCharacters(BaseStreamWriter.java:465) 
~[!/:6.2.6]
        at 
com.thoughtworks.xstream.io.xml.StaxWriter.setValue(StaxWriter.java:158) ~[!/:?]
        at 
com.thoughtworks.xstream.io.WriterWrapper.setValue(WriterWrapper.java:45) 
~[!/:?]
        at 
com.thoughtworks.xstream.converters.SingleValueConverterWrapper.marshal(SingleValueConverterWrapper.java:45)
 ~[!/:?]
        at 
com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:50)
 ~[!/:?]
        at 
com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58)
 ~[!/:?]
        at 
com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:43)
 ~[!/:?]
        at 
com.thoughtworks.xstream.core.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:87)
 ~[!/:?]
        at 
com.thoughtworks.xstream.converters.reflection.SerializableConverter$1.writeToStream(SerializableConverter.java:139)
 ~[!/:?]
        at 
com.thoughtworks.xstream.core.util.CustomObjectOutputStream.writeObjectOverride(CustomObjectOutputStream.java:87)
 ~[!/:?]
        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:344) 
~[?:1.8.0_121]
        at 
javax.naming.directory.BasicAttribute.writeObject(BasicAttribute.java:507) 
~[?:1.8.0_121]
        at sun.reflect.GeneratedMethodAccessor124.invoke(Unknown Source) ~[?:?]
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 ~[?:1.8.0_121]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_121]
        at 
com.thoughtworks.xstream.core.util.SerializationMembers.callWriteObject(SerializationMembers.java:154)
 ~[!/:?]
        at 
com.thoughtworks.xstream.converters.reflection.SerializableConverter.doMarshal(SerializableConverter.java:257)
 ~[!/:?]
        at 
com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.marshal(AbstractReflectionConverter.java:90)
 ~[!/:?]
        at 
com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
 ~[!/:?]
        at 
com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58)
 ~[!/:?]
        at 
com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:43)
 ~[!/:?]
        at 
com.thoughtworks.xstream.core.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:87)
 ~[!/:?]
        at 
com.thoughtworks.xstream.converters.reflection.SerializableConverter$1.writeToStream(SerializableConverter.java:139)
 ~[!/:?]
        at 
com.thoughtworks.xstream.core.util.CustomObjectOutputStream.writeObjectOverride(CustomObjectOutputStream.java:87)
 ~[!/:?]
        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:344) 
~[?:1.8.0_121]
        at 
javax.naming.directory.BasicAttributes.writeObject(BasicAttributes.java:293) 
~[?:1.8.0_121]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[?:1.8.0_121]
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
~[?:1.8.0_121]
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 ~[?:1.8.0_121]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_121]
        at 
com.thoughtworks.xstream.core.util.SerializationMembers.callWriteObject(SerializationMembers.java:154)
 ~[!/:?]
        ... 73 more


And If I convert it to  JSON with xstream it Works !!!!!!!!!

Like this

<dataFormats>
    <json id="XstreamJson" library="XStream" prettyPrint="true"/> 
</dataFormats> ...
<to 
uri="ldap:ldapSHQinterne?base=ou=xxxxxxxxxx,o=yyyyyyyyyy&amp;returnedAttributes=ou,sn,givenName,fullName,telephoneNumber,physicalDeliveryOfficeName,mail,pwmLastPwdUpdate,pwmResponseSet,Photo,passwordExpirationTime,loginGraceRemaining,loginDisabled,loginTime,lockedByIntruder,networkAddress"
 /> <marshal><custom ref="XstreamJson" /></marshal> Result for the 
networkAdress ...
},
        "com.sun.jndi.ldap.LdapAttribute": {
          "@serialization": "custom",
          "javax.naming.directory.BasicAttribute": {
            "default": {
              "ordered": false,
              "attrID": "networkAddress"
            },
            "int": 1,
            "string": "9#\u0000\u0000    "
          },
...

Why it's work in JSON using xstream and not for XML ?????

Someone did it before with XML ?????

Regards


Daniel Langevin
Direction de l’assistance et des technologie Direction des ressources 
informationnelles et matérielles

Reply via email to