axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Anne Thomas Manes <atma...@gmail.com>
Subject Re: No such operation error - malformed WSDL?
Date Thu, 23 Jun 2005 23:42:43 GMT
No worries -- change it to "body" or whatever else you like.

Anne

On 6/23/05, Patrick Quinn <Patrick.Quinn@evolving.com> wrote:
> Hi Anne
> 
> As mentioned last week, I got a broken WSDL working on Axis with your changes (many thanks
once again).
> Our customer, however, cannot get the changes through parsing on their BizTalk platform.
> It seems not to accept the name "parameters", which it treats as a 'reserved word'.
> 
> Would a fix be as simple as changing the name 'parameters' to something else? Apologies
if this is a dumb question.
> 
> Regards
> 
> Pat
> 
>         -----Original Message-----
>         From: Anne Thomas Manes [mailto:atmanes@gmail.com]
>         Sent: Thu 16/06/2005 01:14
>         To: axis-user@ws.apache.org
>         Cc:
>         Subject: Re: No such operation error - malformed WSDL?
> 
> 
> 
>         I finally allocated to review your WSDL. You have one error -- when
>         using document/literal, your message <part> definitions must reference
>         an element, not a type. And as I said before, it works a lot better if
>         you use wrapped style rather than document style.
> 
>         Here's an updated WSDL that fixes the error and uses the wrapped convention.
> 
>         <?xml version="1.0" encoding="UTF-8"?>
>         <wsdl:definitions
>           xmlns="http://schemas.xmlsoap.org/wsdl/"
>           xmlns:impl="urn:xml-soapadapter"
>           xmlns:intf="urn:xml-soapadapter"
>           xmlns:tns="urn:ProvidentProvisioningTNS"
>           xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>           xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>           xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
>           targetNamespace="urn:ProvidentProvisioningTNS"
>           name="urn:ProvidentProvisioning">
>           <wsdl:types>
>             <xsd:schema elementFormDefault="qualified"
>         targetNamespace="urn:ProvidentProvisioningTNS">
>               <xsd:element name="ProvisioningTaskRequestOperation">
>                 <xsd:complexType>
>                   <xsd:sequence>
>                     <xsd:element minOccurs="0" maxOccurs="1" name="REQUESTID"
>         type="xsd:string"/>
>                     <xsd:element minOccurs="0" maxOccurs="1" name="SOTYPE"
>         type="xsd:string"/>
>                     <xsd:element minOccurs="0" maxOccurs="1" name="PRIORITY"
>         type="xsd:string"/>
>                     <xsd:element minOccurs="0" maxOccurs="1" name="RECOVERY"
>         type="xsd:string"/>
>                     <xsd:element minOccurs="0" maxOccurs="1" name="XML_SO"
>         type="xsd:string"/>
>                   </xsd:sequence>
>                 </xsd:complexType>
>               </xsd:element>
>               <xsd:element name="ProvisioningTaskResponse">
>                 <xsd:complexType>
>                   <xsd:sequence>
>                     <xsd:element name="ProvisioningTaskReturn" type="xsd:string"/>
>                   </xsd:sequence>
>                 </xsd:complexType>
>               </xsd:element>
>             </xsd:schema>
>           </wsdl:types>
>           <message name="ProvisioningTaskRequestMessage">
>             <part name="parameters" element="tns:ProvisioningTaskRequestOperation"/>
>           </message>
>           <message name="ProvisioningTaskAckMessage">
>             <part name="parameters" element="tns:ProvisioningTaskResponse"/>
>           </message>
>           <portType name="ProvisioningTaskRequestPortType">
>             <operation name="ProvisioningTaskRequestOperation">
>               <input message="tns:ProvisioningTaskRequestMessage"/>
>               <output message="tns:ProvisioningTaskAckMessage"/>
>             </operation>
>           </portType>
>           <binding name="ProvisioningTaskRequestSoapBinding"
>         type="tns:ProvisioningTaskRequestPortType">
>             <soap:binding style="document"
>         transport="http://schemas.xmlsoap.org/soap/http"/>
>             <operation name="ProvisioningTaskRequestOperation">
>               <soap:operation
>         soapAction="ProvidentProvisioningTNS/ProvisioningTaskRequestOperation"/>
>               <input>
>                 <soap:body use="literal"/>
>               </input>
>               <output>
>                 <soap:body use="literal"/>
>               </output>
>             </operation>
>           </binding>
>           <service name="ProvisioningService">
>             <documentation>Provident Provisioning Service</documentation>
>             <port name="ProvisioningTaskRequestPort"
>         binding="tns:ProvisioningTaskRequestSoapBinding">
>               <soap:address
>         location="http://localhost:8880/axis/services/ProvidentProvisioning"/>
>             </port>
>           </service>
>                 <!--  message declns -->
>                 <!--  port type declns FINISHED -->
>                 <!--  binding declns FINISHED -->
>                 <!--  service decln  FINISHED  -->
>         </wsdl:definitions>
> 
>         On 6/15/05, Anne Thomas Manes <atmanes@gmail.com> wrote:
>         > I just grabbed the WSDL operation name, but perhaps your Java method
>         > name is different? The "name" attribute should specify the Java method
>         > name.
>         >
>         > Anne
>         >
>         > On 6/15/05, Patrick Quinn <Patrick.Quinn@evolving.com> wrote:
>         > > Thanks Anne, Feng
>         > >
>         > > You have both given me food for thought and I won't give up.
>         > >
>         > > Anne, I did try adding the operation definition as you suggested. See
below:
>         > >
>         > > <deployment
>         > >     xmlns="http://xml.apache.org/axis/wsdd/"
>         > >     xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
>         > >   <!-- Services from ProvisioningService WSDL service -->
>         > >       <parameter name="wsdlServicePort" value="ProvisioningTaskRequestPort"/>
>         > >       <parameter name="className" value="ProvidentProvisioningTNS.ProvisioningTa
>         > > skRequestSoapBindingSkeleton"/>
>         > >       <parameter name="wsdlPortType" value="ProvisioningTaskRequestPortType"/>
>         > >       <parameter name="allowedMethods" value="*"/>
>         > >       <operation name="ProvisioningTaskRequestOperation"
>         > >          qname="ns:ProvisioningTaskRequest"
>         > >       />
>         > >       <typeMapping
>         > >         xmlns:ns="urn:ProvidentProvisioningTNS"
>         > >         qname="ns:ProvisioningTaskRequest"
>         > >         type="java:ProvidentProvisioningTNS._ProvisioningTaskRequest"
>         > >         serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
>         > >         deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
>         > >         encodingStyle=""
>         > >       />
>         > >   </service>
>         > > </deployment>
>         > >
>         > >
>         > > But I now get the following error:
>         > >
>         > >
>         > > Exception in thread "main" AxisFault
>         > >  faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
>         > >  faultSubcode:
>         > >  faultString: org.apache.axis.InternalException: java.lang.Exception:
Couldn&apos;t find a matching Java operation for WSDD operation &quot;ProvisioningTaskRequestOperation&quot;
(0 args)
>         > >  faultActor:
>         > >  faultNode:
>         > >  faultDetail:
>         > >         {http://xml.apache.org/axis/}stackTrace: AxisFault
>         > >  faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
>         > >  faultSubcode:
>         > >  faultString: org.apache.axis.InternalException: java.lang.Exception:
Couldn&amp
>         > > ;apos;t find a matching Java operation for WSDD operation &amp;quot;Provisioning
>         > > TaskRequestOperation&amp;quot; (0 args)
>         > >  faultActor:
>         > >  faultNode:
>         > >  faultDetail:
>         > > org.apache.axis.InternalException: java.lang.Exception: Couldn't find
a matching
>         > >  Java operation for WSDD operation &quot;ProvisioningTaskRequestOperation&quot;
>         > > (0 args)
>         > >
>         > >
>         > > Is this something obvious, or is it better to take Feng's advice and
build from scratch using Java2WSDL?
>         > >
>         > > Thanks again,
>         > >
>         > > Pat
>         > >
>         > >
>         > >         -----Original Message-----
>         > >         From: Anne Thomas Manes [mailto:atmanes@gmail.com]
>         > >         Sent: Wed 15/06/2005 18:27
>         > >         To: axis-user@ws.apache.org
>         > >         Cc:
>         > >         Subject: Re: No such operation error - malformed WSDL?
>         > >
>         > >
>         > >
>         > >         Pat,
>         > >
>         > >         You're correct -- you need to add an <operation> definition
to your
>         > >         WSDD to help Axis map the <ProvisioningTaskRequest> message
to the
>         > >         ProvisioningTaskRequestOperation method.
>         > >
>         > >         The format of the <operation> definition is:
>         > >
>         > >                 <operation name="ProvisioningTaskRequestOperation"
>         > >                            qname="ns:ProvisioningTaskRequest"
>         > >                 />
>         > >
>         > >         (If you used wrapped style, you wouldn't have this problem.)
>         > >
>         > >         Anne
>         > >
>         > >
>         > >         On 6/15/05, Feng Xie (fxie) <fxie@cisco.com> wrote:
>         > >         >
>         > >         > Pat:
>         > >         >
>         > >         > Too bad to hear that. Don't give up.
>         > >         >
>         > >         > In my case ( Axis + Tomcat 5 ), the soapAction is always
"" in WSDL. What I
>         > >         > did is come up a very basic Java interface and let Java2WSDL
to generate a
>         > >         > base WSDL. I then enhance the WSDL. I noticed that the
soapAction is "" in
>         > >         > the based WSDL created by Java2WSDL.
>         > >         >
>         > >         > However, the soapAction in your WSDL is not "". Not sure
whether that will
>         > >         > affect the dispatch process.
>         > >         >
>         > >         > Feng
>         > >         >
>         > >
>         > >
>         > >
>         > > ______________________________________________________________________
>         > > This email has been scanned by the MessageLabs Email Security System.
>         > > For more information please visit http://www.messagelabs.com/email
>         > > ______________________________________________________________________
>         > >
>         >
> 
> 
> 
> ______________________________________________________________________
> This email has been scanned by the MessageLabs Email Security System.
> For more information please visit http://www.messagelabs.com/email
> ______________________________________________________________________
> 
>

Mime
View raw message