Hi,
I have just a ported some services to Java WS-Core 4.2.0 (currently
running on Ubuntu 8.04), which, in principle, went flawlessly. The only
issues I have is that I cannot seem to get notifications to work. I have
one service, AgreementFactory, which sends out notifications, and I try
to consume them in another web service (Manager) (both are running in
the same container). This worked before, but it does not now.
I used the code shown in the migration guide (
http://tinyurl.com/6dttac ) and can subscribe successfully from my
service, as well as from the command line using wsn-subscribe, but I
always get the following error messages in the container when a
notification is sent:
-- snip --
2008-11-03T17:58:49.987+01:00 WARN impl.SimpleSubscriptionTopicListener
[ServiceThread-2,topicChanged:129] [JWSCORE-169] Failed to send
notification for subscription with key
'D41C9D72AA75BD44F9B64D59129FECE7BA1DEFA3+a8a8a1c0-a9c8-11dd-9abf-a74930381f72':
[JWSCORE-130] Argument name is null
-- snip --
Just for the sake of having it here, below is the code I use in my
Manager service (but, as I said, it doesn't work with wsn-subscribe as
well):
-- snip --
NotificationConsumerManager consumer;
consumer = NotificationConsumerManager.getInstance();
consumer.startListening();
EndpointReferenceType consumerEPR =
consumer.createNotificationConsumer(this);
Subscribe request = new Subscribe();
request.setConsumerReference(consumerEPR);
WSBaseNotificationServiceAddressingLocator notifLocator = new
WSBaseNotificationServiceAddressingLocator();
NotificationProducer producerPort =
notifLocator.getNotificationProducerPort(endpoint);
TopicExpressionType topicExpression = new TopicExpressionType();
topicExpression.setDialect(WSNConstants.SIMPLE_TOPIC_DIALECT);
topicExpression.setValue(AgreementFactoryQNames.TOPIC_CREATED_AGREEMENT_EPR);
MessageElement element =
(MessageElement)ObjectSerializer.toSOAPElement(topicExpression,
WSNConstants.TOPIC_EXPRESSION);
FilterType filter = new FilterType();
filter.set_any(new MessageElement[] { element });
request.setFilter(filter);
producerPort.subscribe(request);
-- snip --
I found a link on the gt4-friends mailing list (
http://www-unix.globus.org/mail_archive/gt4-friends/2005/11/msg00076.html
) stating that this was a bug that should be fixed in 4.2.0, but
this didn't help. ;)
I greatly appreciate any help; if I forgot something important, just
tell me and I provide the necessary information.
Kind regards,
Roland
--
Dipl.-Inf. Roland Kübert
Höchstleistungsrechenzentrum Stuttgart
Universität Stuttgart
Nobelstraße 19
70569 Stuttgart
Phone: +49 711 685 65802
Fax: +49 711 685 65832
Skype: rkuebert