"Document" style means that Axis expects you to use a wrapper object as your parameter. "Wrapped" style means that Axis will automagically wrap your parameters in a wrapper object for you. See http://atmanes.blogspot.com/2005/03/wrapped-documentliteral-convention.html for a description of wrapped style.
Anne On 10/1/07, New AxisU <[EMAIL PROTECTED]> wrote: > 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"/> > <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"/> > <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] > > > > > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
