Ok, after digging a bit further, I understand what Muse is doing.  

NotificationProducer.publish() calls SubscriptionManager.publish()
which calls NotificationConsumerClient.notify()
which calls NotificationConsumerClient.invoke()
which calls SoapClient.send()
which ultimately uses an HttpURLConnection to connect to and send data
to the remote consumer.

So Muse is unaware that my consumer resource is actually on the same
servers.
So the data going out comes back in, and it goes thru the Axis2 message
receiver.

So ultimately for testing our notifications, the consumer shouldn't be
on the same server because we require the SOAP to have authentication
info.  Perhaps I solved my own issue now, which only related to testing.

So to confirm Dan's comment in the "too many sessions" thread, Muse
doesn't use Axis2 to send out notifications.  But, if the notifications
are actually being sent to the same server (in my case), then Axis2 does
intercept the request.  This is not a Muse issue, but an application
design issue.


-----Original Message-----
From: Vinh Nguyen (vinguye2) 
Sent: Wednesday, April 11, 2007 1:59 PM
To: [email protected]
Subject: custom message receiver

This might be related to the "too many sessions" email thread, but I'll
keep this on a separate thread.
 
We are using the Axis2 platform instead of the mini-platform.  We also
implement WS-Security, so we extend the Axis2
RawXMLINOutMessageReceiver.invokeBusinessLogic() to check the header of
each SOAP request for authentication info.
 
For testing, I have a TestWsnConsumer in the same Muse application that
will receive the notifications.
 
What happens though is when I call NotificationProducer.publish(), the
SOAP actually goes thru the customized message receiver to get to the
TestWsnConsumer, but it fails because there is no security info in the
SOAP since it is generated by Muse.  So the notification never gets out,
even though it's actually only going to a resource in the same server
itself.
 
To temporarily get around this, my message receiver ignores
authentication if the SOAP header action is
NotificationConsumer/NotifyRequest.  I know this isn't the right way to
do it, but the long term solution is to figure out why Muse needs to
send the notification message thru the custom Axis2 message receiver if
is just sending data from one resource to another on the same server.
 
I had thought the RawXMLINOutMessageReceiver is only invoked when a
remote client sends data to the Muse app.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to