WS-Notification HTTP Binding

This example demonstrates how to actually expose the WS-Notification Service Engine over SOAP/HTTP.
You will find an example scenario that you can use to understand how it works.

<?xml version="1.0" encoding="UTF-8"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You under the Apache License, Version 2.0
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

-->
<beans xmlns:http="http://servicemix.apache.org/http/1.0"
       xmlns:wsn="http://servicemix.org/wsnotification">

  <http:endpoint service="wsn:NotificationBroker"
                 endpoint="http-binding"
                 targetService="wsn:NotificationBroker"
                 targetEndpoint="Broker"
                 role="consumer"
                 locationURI="http://localhost:8192/Broker/"
                 defaultMep="http://www.w3.org/2004/08/wsdl/in-out" 
                 soap="true"/>	               

  <http:endpoint service="wsn:CreatePullPoint"
                 endpoint="http-binding2"
                 targetService="wsn:CreatePullPoint"
                 targetEndpoint="Broker"
                 role="consumer"
                 locationURI="http://localhost:8192/CreatePullPoint/"
                 defaultMep="http://www.w3.org/2004/08/wsdl/in-out"
                 soap="true"/>

</beans>

You can download the following files:

  • a simple html client page (which is a work in progress) that you can use to send requests: download
  • a SOAP UI containing a test suite showing how to use WS-Notification: download

External WSN client communicating over SOAP: URL format

When formatting URLs to Web Services inside WSN messages (e.g. when subscribing to a broker) use guidelines provided below.

The rules:

To sum up: http://localhost:11111/wsn/NotificationConsumer?http.soap=true&http.soapVersion=1.1 is the only solution when communication over SOAP is required. Other options cause SM to throw an exception while parsing the address or while trying to access address that does not exist (404), or make the XFire generate a fault (no SOAP envelope present).