You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Daniel Langevin <da...@shq.gouv.qc.ca> on 2021/08/17 19:31:33 UTC
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&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&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
RE: Camel-ldap xtream issue
Posted by Daniel Langevin <da...@shq.gouv.qc.ca>.
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 <da...@shq.gouv.qc.ca>
Envoyé : 17 août 2021 15:32
À : users@camel.apache.org
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&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&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
Re: Camel-ldap xtream issue
Posted by JB Onofré <jb...@nanthrax.net>.
I will take a look.
Regards
JB
> Le 23 août 2021 à 21:40, Daniel Langevin <an...@gmail.com> a écrit :
>
>
> Hi !
> Anybody have a clue ?
>
> Regards.
>
> Daniel
>
>> On 2021/08/17 19:31:33, Daniel Langevin <da...@shq.gouv.qc.ca> wrote:
>> 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&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&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
>>
>>
Re: Camel-ldap xtream issue
Posted by Daniel Langevin <an...@gmail.com>.
Hi !
Anybody have a clue ?
Regards.
Daniel
On 2021/08/17 19:31:33, Daniel Langevin <da...@shq.gouv.qc.ca> wrote:
> 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&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&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
>
>