Hi

 

I'm using the wsn-producer / wsn-consumer samples and I've noticed that
the SubscriptionReference element in the NotificationMessage produced by
the producer is missing (I need it to correlate a particular event
received to a subscription). In fact the message looks as follows:

 

<wsnt:NotificationMessage

    xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2";

    xmlns:alar="http://italtel.com/specs/wsn/alarmHeader";

    xmlns:muse-wsa="http://ws.apache.org/muse/addressing";

    xmlns:wsa="http://www.w3.org/2005/08/addressing";
xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2";>

    <wsnt:Topic

 
Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Concrete";
xmlns:tns="http://italtel.org/specs/wsn/topics";>tns:dummyTopic</wsnt:Top
ic>

    <wsnt:ProducerReference>

        <wsa:ReferenceParameters
xmlns:wsa="http://www.w3.org/2005/08/addressing";>

            <muse-wsa:ResourceId
xmlns:muse-wsa="http://ws.apache.org/muse/addressing";>MuseResource-1</mu
se-wsa:ResourceId>

        </wsa:ReferenceParameters>

        <wsa:Address
xmlns:wsa="http://www.w3.org/2005/08/addressing";>http://127.0.0.1:8080/P
roducer/services/Producer</wsa:Address>

    </wsnt:ProducerReference>

    <wsnt:Message>

        ...

    </wsnt:Message>

</wsnt:NotificationMessage>

 

Then I found out that SimpleNotificationProducer::publish (QName
topicName, Element content) doesn't set the SubscriptionReference so I
added the following instruction to do that:

 

message.setSubscriptionReference(sub.getWsResource().getEndpointReferenc
e());

 

After this patch the outgoing notification message correctly contains
the subscription reference (the whole SOAP message is logged by
wsn-producer):

 

<wsnt:Notify xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2";>

            <wsnt:NotificationMessage

                xmlns:alar="http://italtel.com/specs/wsn/alarmHeader";

                xmlns:muse-wsa="http://ws.apache.org/muse/addressing";

                xmlns:wsa="http://www.w3.org/2005/08/addressing";
xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2";>

                <wsnt:SubscriptionReference>

                    <wsa:Address
xmlns:wsa="http://www.w3.org/2005/08/addressing";>http://127.0.0.1:8080/P
roducer/services/SubscriptionManager</wsa:Address>

                    <wsa:ReferenceParameters
xmlns:wsa="http://www.w3.org/2005/08/addressing";>

                        <muse-wsa:ResourceId
xmlns:muse-wsa="http://ws.apache.org/muse/addressing";>MuseResource-1</mu
se-wsa:ResourceId>

                    </wsa:ReferenceParameters>

                </wsnt:SubscriptionReference>

                <wsnt:Topic

 
Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Concrete";
xmlns:tns="http://italtel.org/specs/wsn/topics";>tns:dummyTopic</wsnt:Top
ic>

                <wsnt:ProducerReference>

                    <wsa:ReferenceParameters
xmlns:wsa="http://www.w3.org/2005/08/addressing";>

                        <muse-wsa:ResourceId
xmlns:muse-wsa="http://ws.apache.org/muse/addressing";>MuseResource-1</mu
se-wsa:ResourceId>

                    </wsa:ReferenceParameters>

                    <wsa:Address
xmlns:wsa="http://www.w3.org/2005/08/addressing";>http://127.0.0.1:8080/P
roducer/services/Producer</wsa:Address>

                </wsnt:ProducerReference>

                <wsnt:Message>

                    ...

                </wsnt:Message>

            </wsnt:NotificationMessage>

 

Now the problem is that the ingoing notification message (the message
received by wsn-consumer) doesn't contain the SubscriptionReference
element and this is clear because the consumer logs the message received
in 

ConsumerCapabilityImpl::process (NotificationMessage message).

 

Could anyone help me?

 

Thanks

Francesco

 

 

Reply via email to