SUCCESS!

Following Anne's advice I went back to the wsdl above & discovered that it
was missing some definitions.  But that wasn't enough.  I went back to the
old version & cut it down similarly & of course it worked.  So then I
started trying to see what was different between them.  Trying to make the
new wsdl look like the old one I was able to get a good deploy.wsdd & good
message.

If you are reading this, let me say that I am still unclear about all of
this.  Here's the deploy.wsdd that didn't work.  Notice that
style="document"  in the <services> tag.


<deployment
    xmlns="http://xml.apache.org/axis/wsdd/";
    xmlns:java="http://xml.apache.org/axis/wsdd/providers/java";>

  <!-- Services from DiscoveryService WSDL service -->

  <service name="discovery" provider="java:RPC" style="document"
use="literal">
    <!-- place this block below <service ...> and above <parameter ...> -->
      <parameter name="wsdlTargetNamespace" value="urn:
discovery.services.netcentric.sec"/>
      <parameter name="wsdlServiceElement" value="DiscoveryService"/>
      <parameter name="schemaQualified" value="
http://dws.sec,urn:us:gov:ic:ism:v2,urn:discovery.services.netcentric.sec,http://www.opengis.net/gml"/<http://cadm.ddms.dod.mil,http://metadata.dod.mil/mdr/ns/DDMS/1.4/,http://metadata.dod.mil/mdr/ns/DDMS/_1_4,http://dws.sec,urn:us:gov:ic:ism:v2,urn:discovery.services.netcentric.sec,http://schemas.xmlsoap.org/ws/2003/03/addressing,http://dars.ddms.dod.mil,http://www.opengis.net/gml"/>
>
      <parameter name="wsdlServicePort" value="discovery"/>
      <parameter name="className" value="
sec.netcentric.services.discovery.DiscoverySoapBindingImpl"/>
      <parameter name="wsdlPortType" value="Discovery"/>
      <parameter name="typeMappingVersion" value="1.2"/>
      <operation name="getVersion" qname="getVersion"
returnQName="getVersionReturn" returnType="rtns:string" xmlns:rtns="
http://www.w3.org/2001/XMLSchema"; >
      </operation>
      <parameter name="allowedMethods" value="getVersion"/>

</service>
</deployment>

The corresponding wsdl is

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:impl="urn:discovery.services.netcentric.sec"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; xmlns:wsdlsoap="
http://schemas.xmlsoap.org/wsdl/soap/"; xmlns:xsd="
http://www.w3.org/2001/XMLSchema"; xmlns="urn:
discovery.services.netcentric.sec" targetNamespace="urn:
discovery.services.netcentric.sec">
 <wsdl:types>
  <xsd:schema elementFormDefault="qualified" targetNamespace="urn:
discovery.services.netcentric.sec" xmlns="http://www.w3.org/2001/XMLSchema";>
   <element name="getVersion">
    <complexType/>
   </element>
   <element name="getVersionResponse">
    <complexType>
     <sequence>
      <element name="getVersionReturn" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
  </xsd:schema>
 </wsdl:types>
 <wsdl:message name="getVersionRequest">
   </wsdl:message>
 <wsdl:message name="getVersionResponse">
  <wsdl:part name="getVersionReturn" type="xsd:string"/>
 </wsdl:message>
 <wsdl:portType name="Discovery">
  <wsdl:operation name="getVersion">
   <wsdl:input name="getVersionRequest" message="impl:getVersionRequest"/>
   <wsdl:output name="getVersionResponse"
message="impl:getVersionResponse"/>
  </wsdl:operation>
 </wsdl:portType>
 <wsdl:binding name="discoverySoapBinding" type="impl:Discovery">
  <wsdlsoap:binding style="document" transport="
http://schemas.xmlsoap.org/soap/http"/>
  <wsdl:operation name="getVersion">
   <wsdlsoap:operation/>
   <wsdl:input name="getVersionRequest">
    <wsdlsoap:body use="literal"/>
   </wsdl:input>
   <wsdl:output name="getVersionResponse">
    <wsdlsoap:body use="literal"/>
   </wsdl:output>
  </wsdl:operation>
 </wsdl:binding>
 <wsdl:service name="DiscoveryService">
  <wsdl:port name="discovery" binding="impl:discoverySoapBinding">
   <wsdlsoap:address location="
http://localhost:8015/dF-1.4.1/services/discovery"/>
  </wsdl:port>
 </wsdl:service>
</wsdl:definitions>

The magic fix was to change

 <wsdl:message name="getVersionRequest">
   </wsdl:message>
 <wsdl:message name="getVersionResponse">
  <wsdl:part name="getVersionReturn" type="xsd:string"/>
 </wsdl:message>

to

 <wsdl:message name="getVersionRequest">
    <wsdl:part name="parameters" element="impl:getVersion"/>
  </wsdl:message>
  <wsdl:message name="getVersionResponse">
    <wsdl:part name="parameters" element="impl:getVersionResponse"/>
  </wsdl:message>

Now the deploy.wsdd looks like

<deployment
    xmlns="http://xml.apache.org/axis/wsdd/";
    xmlns:java="http://xml.apache.org/axis/wsdd/providers/java";>

  <!-- Services from DiscoveryService WSDL service -->

  <service name="discovery" provider="java:RPC" style="wrapped"
use="literal">

      <parameter name="wsdlTargetNamespace" value="urn:
discovery.services.netcentric.sec"/>
      <parameter name="wsdlServiceElement" value="DiscoveryService"/>

 <parameter name="schemaQualified" value="
http://dws.sec,urn:us:gov:ic:ism:v2,urn:discovery.services.netcentric.sec,http://www.opengis.net/gml"/<http://cadm.ddms.dod.mil,http://metadata.dod.mil/mdr/ns/DDMS/1.4/,http://metadata.dod.mil/mdr/ns/DDMS/_1_4,http://dws.sec,urn:us:gov:ic:ism:v2,urn:discovery.services.netcentric.sec,http://schemas.xmlsoap.org/ws/2003/03/addressing,http://dars.ddms.dod.mil,http://www.opengis.net/gml"/>
>
      <parameter name="wsdlServicePort" value="discovery"/>
      <parameter name="className" value="
sec.netcentric.services.discovery.DiscoverySoapBindingImpl"/>
      <parameter name="wsdlPortType" value="Discovery"/>
      <parameter name="typeMappingVersion" value="1.2"/>
      <operation name="getVersion" qname="operNS:getVersion"
xmlns:operNS="urn:discovery.services.netcentric.sec"
returnQName="retNS:getVersionReturn" xmlns:retNS="urn:
discovery.services.netcentric.sec" returnType="rtns:string" xmlns:rtns="
http://www.w3.org/2001/XMLSchema"; >
      </operation>
      <parameter name="allowedMethods" value="getVersion"/>

  </service>
</deployment>

Notice that the style is now "wrapped" and the namespaces inside <operation
name="getVersion" are all different & for my purposes correct.

I'm happy that my wsdl is working, but I still wish I understood why this is
so?  What controls the style="" setting?  Is there some website I could
refer to to explain why the

    <wsdl:part name="parameters" element="impl:getVersionResponse"/>

is more correct?

On 10/1/07, Anne Thomas Manes <[EMAIL PROTECTED]> wrote:

> I suggest that you edit the WSDL, then run WSDL2Java to generate your new
> WSDD.
>
> Anne
>
> On 9/28/07, New AxisU <[EMAIL PROTECTED]> wrote:
> >
> >
> > Hi, I need help with deploy.wsdd & ...?
> >
> > I have an existing wsdl that returns this soap message:
> >
> > <soapenv:Envelope
> > xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
> >   xmlns:xsd="http://www.w3.org/2001/XMLSchema "
> >   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
> >   <soapenv:Body>
> >     <getVersionResponse
> > xmlns="urn:discovery.services.netcentric.sec ">
> >       <getVersionReturn>Version 1.0 from discovery in
> > tomcat</getVersionReturn>
> >     </getVersionResponse>
> >   </soapenv:Body>
> > </soapenv:Envelope>
> >
> > The schemas inside this wsdl were updated & so I need to make a new
> version
> > of the web service.
> >
> > After I generate java code using axis 1.4 and edit the deploy.wsdd by
> hand,
> > the best I've been able to come up with is
> >
> > <soapenv:Envelope
> > xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
> > xmlns:xsd="http://www.w3.org/2001/XMLSchema "
> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
> >   <soapenv:Body>
> >     <getVersionReturn
> > xmlns="urn:discovery.services.netcentric.sec
> > ">darsFederation discovery 1.4.1</getVersionReturn>
> >   </soapenv:Body>
> > </soapenv:Envelope>
> >
> > There are two things wrong:
> >
> > 1) What happened to the <getVersionResponse ...> tags?
> > 2) xmlns="urn:discovery.services.netcentric.sed" should be
> > on the missing
> > tag & not on the <getVersionReturn>
> >
> > I'm using document/literal/wrapped (wsdl is at the bottom).
> >
> > Here are some entries from edited deploy.wsdd:
> >
> > <service name="discovery" provider="java:RPC" style="document"
> > use="literal">
> >   <operation name="getVersion"
> >     qname="ns:getVersion"
> >     xmlns:ns="urn: discovery.services.netcentric.sec"
> >     returnQName="rtns:getVersionReturn"
> >     returnType="tns:getVersionResponse"
> >     xmlns:rtns="urn:discovery.services.netcentric.sec" >
> >   </operation>
> >    ...
> >
> > I'm really confused by the missing tags because it seems clear from the
> wsdl
> > (below) that they should be there.
> > Thanks for any & all help! I know that I'm just doing something wrong.
> >
> >
> >
> > -----------------WSDL -----------------------
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> > <wsdl:definitions
> >  xmlns:impl="urn:discovery.services.netcentric.sec"
> >  xmlns:wsdl=" http://schemas.xmlsoap.org/wsdl/";
> >  xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/";
> >  xmlns:xsd=" http://www.w3.org/2001/XMLSchema";
> >  targetNamespace="urn:discovery.services.netcentric.sec"
> >  xmlns="http://schemas.xmlsoap.org/wsdl/";>
> >   <wsdl:types>
> >  ...
> >  </wsdl:types>
> >  <wsdl:message name="getVersionRequest">
> >  </wsdl:message>
> >  <wsdl:message name="getVersionResponse">
> >   <wsdl:part name="getVersionReturn" type="xsd:string"/>
> >  </wsdl:message>
> >  <wsdl:portType name="Discovery">
> >   <wsdl:operation name="getVersion">
> >    <wsdl:input name="getVersionRequest"
> > message="impl:getVersionRequest"/>
> >    <wsdl:output name="getVersionResponse"
> > message="impl:getVersionResponse"/>
> >   </wsdl:operation>
> >  </wsdl:portType>
> >  <wsdl:binding name="discoverySoapBinding" type="impl:Discovery">
> >   <wsdlsoap:binding style="document"
> > transport="http://schemas.xmlsoap.org/soap/http"/>
> >   <wsdl:operation name="getVersion">
> >    <wsdlsoap:operation/>
> >    <wsdl:input name="getVersionRequest">
> >     <wsdlsoap:body use="literal" />
> >    </wsdl:input>
> >    <wsdl:output name="getVersionResponse">
> >     <wsdlsoap:body use="literal" />
> >    </wsdl:output>
> >   </wsdl:operation>
> >  </wsdl:binding>
> >  <wsdl:service name="DiscoveryService">
> >   <wsdl:port name="discovery"
> > binding="impl:discoverySoapBinding">
> >    <wsdlsoap:address
> > location="http://localhost:8015/df-1.4.1/services/discovery"/>
> >   </wsdl:port>
> >  </wsdl:service>
> > </wsdl:definitions>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

Reply via email to