Your SOAP response body currently looks like, <verifyDebitCardResponse xmlns=" http://bankA.bank.printAndMail.scenario.llama.uci.edu<http://banka.bank.printandmail.scenario.llama.uci.edu/> "> <verifyDebitCardReturn xsi:type="xsd:boolean">true</verifyDebitCardReturn> </verifyDebitCardResponse>
whereas it should look like this, <verifyDebitCardResponse xmlns=" http://bankA.bank.printAndMail.scenario.llama.uci.edu<http://banka.bank.printandmail.scenario.llama.uci.edu/> "> <verifyDebitCardReturn xsi:type="xsd:boolean" *xmlns=""* >true</verifyDebitCardReturn> </verifyDebitCardResponse> The WS-I BasicProfile states that part accessors should have no namespace (R2735 in http://www.ws-i.org/Profiles/BasicProfile-1.1-2004-08-24.html#Part_Accessors ) alex On Mon, Apr 28, 2008 at 5:27 PM, Mark Panahi <[EMAIL PROTECTED]> wrote: > Hello, I'm getting an error "Unable to process response: SOAP body does > not > contain required part" when returning from an invoke. However, this > doesn't > make sense since the message seems to have that required part. > > Any ideas? > > Thanks, > > Mark > > DEBUG - GeronimoLog.debug(66) | Sending a message containing wsa endpoints > in headers for session passing. > DEBUG - GeronimoLog.debug(66) | <?xml version='1.0' > encoding='utf-8'?><soapenv:Envelope xmlns:soapenv=" > http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header><addr:To > xmlns:addr="http://www.w3.org/2005/08/addressing"> > http://localhost:8081/services/BankA</addr:To><addr:Action xmlns:addr=" > http://www.w3.org/2005/08/addressing"></addr:Action><addr:ReplyTo > xmlns:addr="http://www.w3.org/2005/08/addressing"><addr:Address> > http://www.w3.org/2005/08/addressing/anonymous > </addr:Address></addr:ReplyTo><addr:MessageID > xmlns:addr="http://www.w3.org/2005/08/addressing > ">uuid:hqejbhcnphr38e8ccn0am7</addr:MessageID></soapenv:Header><soapenv:Body><axis2ns1:verifyDebitCard > xmlns:axis2ns1="http://bankA.bank.printAndMail.scenario.llama.uci.edu > "><in0 > xmlns:cle="http://j2ee.netbeans.org/wsdl/ClearingHouse" xmlns:xsi=" > http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd=" > http://www.w3.org/2001/XMLSchema"> > <bankName>bankName</bankName> > <accountHolderName>?string?</accountHolderName> > <accountAddress>accountHolderName</accountAddress> > <accountCity>accountCity</accountCity> > <accountState>accountState</accountState> > <accountZip>accountZip</accountZip> > <accountCountry>accountCountry</accountCountry> > <accountNumber>accountNumber</accountNumber> > <expiryDate>expiryDate</expiryDate> > </in0><in1 xmlns:cle="http://j2ee.netbeans.org/wsdl/ClearingHouse" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd=" > http://www.w3.org/2001/XMLSchema > ">1.1</in1></axis2ns1:verifyDebitCard></soapenv:Body></soapenv:Envelope> > DEBUG - GeronimoLog.debug(66) | Service response: > <?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv=" > http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi=" > http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd=" > http://www.w3.org/2001/XMLSchema"><soapenv:Body><verifyDebitCardResponse > xmlns="http://bankA.bank.printAndMail.scenario.llama.uci.edu"><* > verifyDebitCardReturn* > xsi:type="xsd:boolean">true</*verifyDebitCardReturn* > ></verifyDebitCardResponse></soapenv:Body></soapenv:Envelope> > DEBUG - GeronimoLog.debug(66) | Received response for MEX > {PartnerRoleMex#hqejbhcnphr38e8ccn0am6 [PID { > http://enterprise.netbeans.org/bpel/ClearPaymentProcess}ClearPayment-1<http://enterprise.netbeans.org/bpel/ClearPaymentProcess%7DClearPayment-1> > ] > calling null.verifyDebitCard(...)} > *ERROR - GeronimoLog.error(108) | Unable to process response: SOAP body > does > not contain required part: verifyDebitCardReturn. > org.apache.ode.axis2.OdeFault: SOAP body does not contain required part: > verifyDebitCardReturn.* > at > > org.apache.ode.axis2.util.SoapMessageConverter.extractSoapBodyParts(SoapMessageConverter.java:370) > at > > org.apache.ode.axis2.util.SoapMessageConverter.parseSoapResponse(SoapMessageConverter.java:328) > at > > org.apache.ode.axis2.SoapExternalService$4.call(SoapExternalService.java:348) > at > > org.apache.ode.axis2.SoapExternalService$4.call(SoapExternalService.java:314) > at > > org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:174) > at > > org.apache.ode.scheduler.simple.SimpleScheduler$1.call(SimpleScheduler.java:155) > at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269) > at java.util.concurrent.FutureTask.run(FutureTask.java:123) > at > > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650) > at > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675) > at java.lang.Thread.run(Thread.java:595) > Caused by: java.lang.IllegalArgumentException: SOAP body does not contain > required part: verifyDebitCardReturn. > at > > org.apache.ode.utils.wsdl.Messages.msgSOAPBodyDoesNotContainRequiredPart(Messages.java:140) > ... 11 more > > Here's some of the relevant wsdl: > > <wsdl:message name="verifyDebitCardResponse"> > <wsdl:part name="verifyDebitCardReturn" type="xsd:boolean" /> > </wsdl:message> > > <wsdl:operation name="verifyDebitCard" parameterOrder="in0 in1"> > <wsdl:input message="impl:verifyDebitCardRequest" > name="verifyDebitCardRequest" /> > <wsdl:output message="impl:verifyDebitCardResponse" > name="verifyDebitCardResponse" /> > </wsdl:operation> >
