You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Bayliss Paul <Pa...@comverse.com> on 2003/09/03 21:01:01 UTC

One way messages using document/literal style

Hi All,

I am trying to write a SOAP Service that accepts one-way notifications and
responds with an HTTP 202 Accepted message. The service must use a
document/literal style, be Application scope and wrapped as a preference.
The wsdl for my example service is included below.

The arguments to WSDL2Java are as follows...

java WSDL2Java -W -o . -d Application -s -S false notify.wsdl

When the generated source code is compiled and deployed the resulting WSDL
displayed from a browser is different to that supplied to WSDL2Java and now
includes a response to the operation.

<wsdl:operation name="notify" parameterOrder="Notification">
  <wsdl:input message="impl:notifyRequest" name="notifyRequest"/>
  <wsdl:output message="impl:notifyResponse" name="notifyResponse"/>
</wsdl:operation>

Does anyone know if one-way document/literal messaging is possible using
Axis, and if so, how it is achieved. If I recall correctly, the WSDL spec.
states that one-way messaging is specified by including only an input
element inside the wsdl:operation element.

Many thanks in advance for any assistance on this,
Paul

notify.wsdl
-----------

<?xml version="1.0" encoding="utf-8" ?>
<definitions
  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
  xmlns:s="http://www.w3.org/2001/XMLSchema"
  xmlns:s0="urn:Notification"
  targetNamespace="urn:Notification"
  xmlns="http://schemas.xmlsoap.org/wsdl/">

  <types>
    <s:schema elementFormDefault="qualified"
targetNamespace="urn:Notification">
      <s:element name="Notification">
        <s:complexType name="NotificationData">
          <s:sequence>
            <s:element name="data" type="s:string" />
          </s:sequence>
        </s:complexType>
      </s:element>
    </s:schema>
  </types>

  <message name="NotificationIn">
    <part name="parameters" element="s0:Notification"/>
  </message>

  <portType name="NotificationPort">
    <operation name="Notify">
      <input message="s0:NotificationIn"/>
    </operation>
  </portType>

  <binding name="NotificationBinding" type="s0:NotificationPort">

    <soap:binding transport="http://schemas.xmlsoap.org/soap/http"
style="document"/>

    <operation name="Notify">
      <soap:operation soapAction="" style="document"/>
      <input>
        <soap:body use="literal"/>
      </input>
    </operation>
  </binding>

  <service name="NotificationService">
    <documentation>A web service for receiving notifications</documentation>
    <port name="NotificationPort" binding="s0:NotificationBinding">
      <soap:address
location="http://localhost:8080/axis/services/NotificationPort" />
    </port>
  </service>

</definitions>