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]
>
>