Hi!

Tried this now, and it doesn't work unfortunately. The If-statement in the
method assumes that the message is not of type StringSource which ours is. 
Upon forcing the method to taking StringSourcel anyways, the new 

content = sourceTransformer.toDOMSource(content); 

gives the same error. I would be eternally greatful if you have any more
hints...

Regards,
/Eyji



gnodet wrote:
> 
> You could create a custom class derived from the CopyTransformer.
> Just replace the call to sourceTransformer.toDOMSource(from) to
> sourceTransformer.toDOMSource(content).
> Then, you will need to configure it on the validation component
>    <property name="messageTransformer">
>      <bean class="com.company.myNewCopyTransformer" />
>    </property>
> 
> It should work.
> 
> On 10/31/06, Eyji <[EMAIL PROTECTED]> wrote:
>>
>> Thanks for your quick reply yet again!
>> We'll fix a JIRA for this, but is there a workaround for this you could
>> recommend which we could try in SM? Maybe switching implementations or
>> something, surely someone else should have run into this issue before.
>>
>> /Eyji
>>
>>
>> gnodet wrote:
>> >
>> > The problems comes from the SourceTransformer class which is
>> > used by the CopyTransformer.
>> > When asked for a DOM representation of a NormalizedMessage, it
>> > stores the parsed DOM node in a property on the message.
>> >
>> > Could you please raise a JIRA for this issue ?
>> >
>> > On 10/31/06, Eyji <[EMAIL PROTECTED]> wrote:
>> >>
>> >> Hope you can help me out here: A validation component of mine is
>> >> configured
>> >> as follows:
>> >>
>> >> <sm:activationSpec componentName="validerare" service="foo:validerare"
>> >> endpoint="validerare" destinationService="foo:loggare">
>> >>                                 <sm:component>
>> >>                                         <bean
>> >> class="org.apache.servicemix.components.validation.ValidateComponent">
>> >>                                                 <property
>> >> name="schemaResource" value="classpath:FOOAnwer.xsd" />
>> >>                                                 <property
>> >> name="errorHandler"
>> >> ref="messageAggregatingErrorHandlerFactory"/>
>> >>                                         </bean>
>> >>                                         <bean
>> >> class="org.apache.servicemix.components.validation.ValidateComponent">
>> >>                                                 <property
>> >> name="schemaResource" value="classpath:FOOQuestion.xsd" />
>> >>                                                 <property
>> >> name="errorHandler"
>> >> ref="messageAggregatingErrorHandlerFactory"/>
>> >>                                         </bean>
>> >>         </sm:component>
>> >> </sm:activationSpec>
>> >>
>> >> The xml messages are retrieved from a JMS-queue. If the XML file
>> >> FOOAnswer.xml is validated first, all is OK. Upon dropping the
>> >> FOOAnswer.xml
>> >> on the Queue, the Runtime-exception below is thrown. If I try to
>> resend
>> >> FOOAnswer.xml again, I get the same exception and nothing works until
>> I
>> >> restart SM.
>> >>
>> >> Stacktrace of Exception:
>> >> ---------------------------------
>> >>
>> >> WARN  - ValidateComponent              - Unable to handle error:
>> >> java.lang.RuntimeException: javax.xml.transform.dom.DOMSource
>> >> java.lang.RuntimeException: javax.xml.transform.dom.DOMSource
>> >>         at
>> >>
>> org.apache.activemq.command.ActiveMQObjectMessage.storeContent(ActiveMQObjectMessage.java:102)
>> >>         at
>> >>
>> org.apache.activemq.command.ActiveMQObjectMessage.setObject(ActiveMQObjectMessage.java:144)
>> >>         at
>> >>
>> org.apache.activemq.ActiveMQSession.createObjectMessage(ActiveMQSession.java:361)
>> >>         at
>> >>
>> org.apache.activemq.ra.ManagedSessionProxy.createObjectMessage(ManagedSessionProxy.java:215)
>> >>         at
>> >>
>> org.apache.servicemix.jbi.nmr.flow.jca.JCAFlow.sendJmsMessage(JCAFlow.java:703)
>> >>         at
>> >>
>> org.apache.servicemix.jbi.nmr.flow.jca.JCAFlow.doRouting(JCAFlow.java:561)
>> >>         at
>> >>
>> org.apache.servicemix.jbi.nmr.flow.jca.JCAFlow.doSend(JCAFlow.java:520)
>> >>         at
>> >>
>> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.send(AbstractFlow.java:121)
>> >>         at
>> >>
>> org.apache.servicemix.jbi.nmr.DefaultBroker.sendExchangePacket(DefaultBroker.java:298)
>> >>         at
>> >>
>> org.apache.servicemix.jbi.security.SecuredBroker.sendExchangePacket(SecuredBroker.java:80)
>> >>         at
>> >>
>> org.apache.servicemix.jbi.container.JBIContainer.sendExchange(JBIContainer.java:793)
>> >>         at
>> >>
>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:375)
>> >>         at
>> >>
>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.send(DeliveryChannelImpl.java:411)
>> >>         at
>> >>
>> org.apache.servicemix.components.util.PojoSupport.fail(PojoSupport.java:275)
>> >>         at
>> >>
>> org.apache.servicemix.components.util.TransformComponentSupport.onMessageExchange(TransformComponentSupport.java:92)
>> >>         at
>> >>
>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:624)
>> >>         at
>> >>
>> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:169)
>> >>         at
>> >>
>> org.apache.servicemix.jbi.nmr.flow.jca.JCAFlow.onMessage(JCAFlow.java:596)
>> >>         at org.jencks.XAEndpoint.onMessage(XAEndpoint.java:126)
>> >>         at
>> >>
>> org.apache.activemq.ra.MessageEndpointProxy$MessageEndpointAlive.onMessage(MessageEndpointProxy.java:120)
>> >>         at
>> >>
>> org.apache.activemq.ra.MessageEndpointProxy.onMessage(MessageEndpointProxy.java:60)
>> >>         at
>> >> org.apache.activemq.ActiveMQSession.run(ActiveMQSession.java:692)
>> >>         at
>> >>
>> org.apache.activemq.ra.ServerSessionImpl.run(ServerSessionImpl.java:163)
>> >>         at
>> >>
>> org.apache.geronimo.connector.work.WorkerContext.run(WorkerContext.java:291)
>> >>         at
>> >> EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown
>> >> Source)
>> >>         at java.lang.Thread.run(Thread.java:595)
>> >> Caused by: java.io.NotSerializableException:
>> >> javax.xml.transform.dom.DOMSource
>> >>         at
>> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
>> >>         at
>> >> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:291)
>> >>         at java.util.HashMap.writeObject(HashMap.java:983)
>> >>         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:585)
>> >>         at
>> >>
>> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:890)
>> >>         at
>> >>
>> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1333)
>> >>         at
>> >>
>> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1284)
>> >>         at
>> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1073)
>> >>         at
>> >> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:291)
>> >>         at
>> >>
>> org.apache.servicemix.jbi.messaging.NormalizedMessageImpl.writeExternal(NormalizedMessageImpl.java:305)
>> >>         at
>> >>
>> java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1304)
>> >>         at
>> >>
>> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1282)
>> >>         at
>> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1073)
>> >>         at
>> >>
>> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1369)
>> >>         at
>> >>
>> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1341)
>> >>         at
>> >>
>> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1284)
>> >>         at
>> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1073)
>> >>         at
>> >> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:291)
>> >>         at
>> >>
>> org.apache.servicemix.jbi.messaging.ExchangePacket.writeExternal(ExchangePacket.java:373)
>> >>         at
>> >>
>> org.apache.servicemix.jbi.messaging.MessageExchangeImpl.writeExternal(MessageExchangeImpl.java:562)
>> >>         at
>> >>
>> java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1304)
>> >>         at
>> >>
>> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1282)
>> >>         at
>> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1073)
>> >>         at
>> >> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:291)
>> >>         at
>> >>
>> org.apache.activemq.command.ActiveMQObjectMessage.storeContent(ActiveMQObjectMessage.java:98)
>> >>
>> >> Regards,
>> >> /Eyji
>> >> --
>> >> View this message in context:
>> >> http://www.nabble.com/Validation-Exception-tf2545818.html#a7093895
>> >> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>> >>
>> >>
>> >
>> >
>> > --
>> > Cheers,
>> > Guillaume Nodet
>> >
>> >
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Validation-Exception-tf2545818.html#a7094332
>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>
>>
> 
> 
> -- 
> Cheers,
> Guillaume Nodet
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Validation-Exception-tf2545818.html#a7114072
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to