-----Original Message----- From: Simon Laws [mailto:simonsl...@googlemail.com] Sent: 24 May 2010 17:01 To: user@tuscany.apache.org Subject: Re: Exception with security (again)
On Mon, May 24, 2010 at 3:47 PM, Gregor Kiddie <gregor.kid...@channeladvisor.com> wrote: > > > -----Original Message----- > From: Simon Laws [mailto:simonsl...@googlemail.com] > Sent: 24 May 2010 15:24 > To: user@tuscany.apache.org > Subject: Re: Exception with security (again) > > On Mon, May 24, 2010 at 2:40 PM, Gregor Kiddie > <gregor.kid...@channeladvisor.com> wrote: >> >> >> -----Original Message----- >> From: Simon Laws [mailto:simonsl...@googlemail.com] >> Sent: 24 May 2010 13:54 >> To: user@tuscany.apache.org >> Subject: Re: Exception with security (again) >> >> On Mon, May 24, 2010 at 11:03 AM, Gregor Kiddie >> <gregor.kid...@channeladvisor.com> wrote: >>> >>> >>> -----Original Message----- >>> From: Simon Laws [mailto:simonsl...@googlemail.com] >>> Sent: 24 May 2010 09:54 >>> To: user@tuscany.apache.org >>> Subject: Re: Exception with security (again) >>> >>> On Fri, May 21, 2010 at 8:17 PM, Gregor Kiddie >>> <gregor.kid...@channeladvisor.com> wrote: >>>> Ok, last one before I leave for the weekend cursing Tuscany! >>>> >>>> >>>> >>>> Using an authentication policy on a binding.ws generates the following >>>> exception. >>>> >>>> >>>> >>>> Caused by: java.lang.ArrayIndexOutOfBoundsException: 1 >>>> >>>> at >>>> org.apache.tuscany.sca.databinding.axiom.OMElementWrapperHandler.setChildren(OMElementWrapperHandler.java:76) >>>> >>>> It looks like childObjects passed into the method has all the parameters >>>> wrapped up in a single piece of XML >>>> >>>> The ChildElements which is pulled from the operation which is passed in, >>>> has >>>> them split up into three Elements. >>>> >>>> >>>> >>>> The loop in setChildren uses the size of the ChildElements as it's upper >>>> bounds and references both objects. Unsurprisingly, when it gets to >>>> childObjects[1] it blows up. >>>> >>>> >>>> >>>> I've been running through everything for a couple of hours and I'm now >>>> calling defeat. I'm close to dumping Tuscany for this! >>>> >>>> >>>> >>>> Gk. >>> >>> Hi Gregor >>> >>> Sorry that you're having a frustrating time. Can you describe your >>> scenario so I can reproduce it here. >>> >>> Thanks >>> >>> Simon >>> >>> >>> -- >>> Apache Tuscany committer: tuscany.apache.org >>> Co-author of a book about Tuscany and SCA: tuscanyinaction.com >>> >>> My Composite looks like >>> <?xml version="1.0" encoding="UTF-8"?> >>> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0" >>> targetNamespace="com.mycompany.myproduct.authentication" >>> xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0" >>> name="authentication" > >>> >>> <component name="Authentication"> >>> <implementation.spring >>> location="WEB-INF/classes/applicationContext.xml" /> >>> <service name="Authentication"> >>> <binding.ws /> >>> </service> >>> <reference name="authenticationProvider" > >>> <binding.ws >>> wsdlElement="http://soa.mycompany.com/webservices/#wsdl.port(MyService/MyServiceSoap12)" >>> requires="authentication" /> >>> </reference> >>> </component> >>> </composite> >>> >>> My definitions file looks like >>> <?xml version="1.0" encoding="UTF-8"?> >>> <definitions xmlns="http://www.osoa.org/xmlns/sca/1.0" >>> xmlns:sca="http://www.osoa.org/xmlns/sca/1.0" >>> >>> xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0" >>> targetNamespace="com.mycompany.richfx.policy" > >>> >>> <policySet name="myCompanyPolicySet" provides="authentication" >>> appliesTo="sca:binding.ws"> >>> <tuscany:basicAuthentication> >>> <tuscany:userName>someusername</tuscany:userName> >>> <tuscany:password>some-password</tuscany:password> >>> </tuscany:basicAuthentication> >>> </policySet> >>> </definitions> >>> >>> Application starts up fine, but when I make the call to the external >>> webservice (the reference), I get the error in the OP. >>> Remove the definitions file and the requires="authentication", and the >>> calls works but gets rejected due to missing the basic authorisation. >>> >> >> Hi Gregor >> >> There's something odd going on here. I set up a test where I deployed >> our calculator service with the AddService deployed as a web service >> to Tomcat with Basic Authentication turned on. >> >> I created a client project where the calculator has a reference to the >> AddService with the "authentication" intent set. This was my >> definitions file. >> >> <definitions xmlns="http://www.osoa.org/xmlns/sca/1.0" >> targetNamespace="http://itest/policy" >> xmlns:sca="http://www.osoa.org/xmlns/sca/1.0" >> xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0" >> xmlns:ip="http://itest/policy" > >> >> >> <sca:policySet name="BasicAuthenticationPolicySet" >> provides="authentication" >> appliesTo="sca:binding.ws"> >> <tuscany:basicAuthentication> >> <tuscany:userName>tuscanyuser</tuscany:userName> >> <tuscany:password>tuscanypwd</tuscany:password> >> </tuscany:basicAuthentication> >> </sca:policySet> >> >> >> </definitions> >> >> I tried it with both a Java implementation and a spring >> implementation. Here's my client component from the composite file... >> >> <component name="CalculatorServiceComponent"> >> <!--implementation.java >> class="calculator.CalculatorServiceImpl"/--> >> <implementation.spring >> location="META-INF/spring/CalculatorService-context.xml"/> >> <reference name="addService" > >> <interface.java interface="calculator.AddService" /> >> <binding.ws requires="authentication" >> uri="http://localhost:8080/sample-calculator-ws-webapp/AddServiceComponent"/> >> </reference> >> <reference name="subtractService" target="SubtractServiceComponent" /> >> <reference name="multiplyService" target="MultiplyServiceComponent" /> >> <reference name="divideService" target="DivideServiceComponent" /> >> </component> >> >> With the password correctly set I get.... >> >> 24-May-2010 13:50:29 org.apache.tuscany.sca.node.impl.NodeImpl <init> >> INFO: Creating node: Calculator.composite >> 24-May-2010 13:50:29 org.apache.tuscany.sca.node.impl.NodeImpl configureNode >> INFO: Loading contribution: >> file:/D:/sca-java-1.x/samples/calculator/target/classes/ >> 24-May-2010 13:50:30 org.apache.tuscany.sca.node.impl.NodeImpl start >> INFO: Starting node: Calculator.composite >> - Loading XML bean definitions from URL >> [file:/D:/sca-java-1.x/samples/calculator/target/classes/META-INF/spring/CalculatorService-context.xml] >> - Module validation failed: The system is attempting to engage a >> module that is not available: rampart >> - Refreshing >> org.apache.tuscany.sca.implementation.spring.runtime.context.scagenericapplicationcont...@14a9387: >> display name >> [org.apache.tuscany.sca.implementation.spring.runtime.context.scagenericapplicationcont...@14a9387]; >> startup date [Mon May 24 13:50:31 BST 2010]; parent: >> org.apache.tuscany.sca.implementation.spring.runtime.context.scaparentapplicationcont...@18782a7 >> - Bean factory for application context >> [org.apache.tuscany.sca.implementation.spring.runtime.context.scagenericapplicationcont...@14a9387]: >> org.springframework.beans.factory.xml.xmlbeanfact...@192d604 >> Spring parent context - containsBean called for name: loadTimeWeaver >> - Pre-instantiating singletons in >> org.springframework.beans.factory.xml.xmlbeanfact...@192d604: defining >> beans [CalculatorServiceBean]; parent: >> org.apache.tuscany.sca.implementation.spring.runtime.context.scaparentapplicationcont...@18782a7 >> Spring parent context - getBean called for name: addService >> Spring parent context - getBean called for name: subtractService >> Spring parent context - getBean called for name: multiplyService >> Spring parent context - getBean called for name: divideService >> 3 + 2=5.0 >> 3 - 2=1.0 >> 3 * 2=6.0 >> 3 / 2=1.5 >> 24-May-2010 13:50:32 org.apache.tuscany.sca.node.impl.NodeImpl stop >> INFO: Stopping node: Calculator.composite >> - Closing >> org.apache.tuscany.sca.implementation.spring.runtime.context.scagenericapplicationcont...@14a9387: >> display name >> [org.apache.tuscany.sca.implementation.spring.runtime.context.scagenericapplicationcont...@14a9387]; >> startup date [Mon May 24 13:50:31 BST 2010]; parent: >> org.apache.tuscany.sca.implementation.spring.runtime.context.scaparentapplicationcont...@18782a7 >> - Destroying singletons in >> org.springframework.beans.factory.xml.xmlbeanfact...@192d604: defining >> beans [CalculatorServiceBean]; parent: >> org.apache.tuscany.sca.implementation.spring.runtime.context.scaparentapplicationcont...@18782a7 >> >> >> with the password set to "abcdefg" I get... >> >> 24-May-2010 13:45:01 org.apache.tuscany.sca.node.impl.NodeImpl <init> >> INFO: Creating node: Calculator.composite >> 24-May-2010 13:45:01 org.apache.tuscany.sca.node.impl.NodeImpl configureNode >> INFO: Loading contribution: >> file:/D:/sca-java-1.x/samples/calculator/target/classes/ >> 24-May-2010 13:45:02 org.apache.tuscany.sca.node.impl.NodeImpl start >> INFO: Starting node: Calculator.composite >> - Loading XML bean definitions from URL >> [file:/D:/sca-java-1.x/samples/calculator/target/classes/META-INF/spring/CalculatorService-context.xml] >> - Module validation failed: The system is attempting to engage a >> module that is not available: rampart >> - Refreshing >> org.apache.tuscany.sca.implementation.spring.runtime.context.scagenericapplicationcont...@14a9387: >> display name >> [org.apache.tuscany.sca.implementation.spring.runtime.context.scagenericapplicationcont...@14a9387]; >> startup date [Mon May 24 13:45:03 BST 2010]; parent: >> org.apache.tuscany.sca.implementation.spring.runtime.context.scaparentapplicationcont...@18782a7 >> - Bean factory for application context >> [org.apache.tuscany.sca.implementation.spring.runtime.context.scagenericapplicationcont...@14a9387]: >> org.springframework.beans.factory.xml.xmlbeanfact...@192d604 >> Spring parent context - containsBean called for name: loadTimeWeaver >> - Pre-instantiating singletons in >> org.springframework.beans.factory.xml.xmlbeanfact...@192d604: defining >> beans [CalculatorServiceBean]; parent: >> org.apache.tuscany.sca.implementation.spring.runtime.context.scaparentapplicationcont...@18782a7 >> Spring parent context - getBean called for name: addService >> Spring parent context - getBean called for name: subtractService >> Spring parent context - getBean called for name: multiplyService >> Spring parent context - getBean called for name: divideService >> - Basic authentication scheme selected >> - Failure authenticating with BASIC 'Application'@localhost:8080 >> - Unable to sendViaPost to >> url[http://localhost:8080/sample-calculator-ws-webapp/AddServiceComponent] >> org.apache.axis2.AxisFault: Transport error: 401 Error: Unauthorized >> >> So it seems to be basically working so my suspicion is turning to the >> WSDL you have? What style is the WSDL using, by default Tuscany is >> expecting to deal with Doc/Lit/Wrapped. If the external service is >> doing something else we'll have to look at how the WSDL is configured. >> >> >> Regards >> >> Simon >> >> -- >> Apache Tuscany committer: tuscany.apache.org >> Co-author of a book about Tuscany and SCA: tuscanyinaction.com >> >> >> The WSDL is huge. Cutting it down to the relevant parts >> >> <?xml version="1.0" encoding="utf-8"?> >> <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" >> xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" >> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" >> xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" >> xmlns:tns="http://soa.mycompany.com/webservices/" >> xmlns:s1="http://microsoft.com/wsdl/types/" >> xmlns:s="http://www.w3.org/2001/XMLSchema" >> xmlns:s2="http://soa.mycompany.com/webservices/AbstractTypes" >> xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" >> xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" >> targetNamespace="http://soa.mycompany.com/webservices/" >> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> >> <wsdl:types> >> <s:schema elementFormDefault="qualified" >> targetNamespace="http://soa.mycompany.com/webservices/"> >> <s:import namespace="http://microsoft.com/wsdl/types/" /> >> <s:complexType name="ArrayOfString"> >> <s:sequence> >> <s:element minOccurs="0" maxOccurs="unbounded" name="string" >> nillable="true" type="s:string" /> >> </s:sequence> >> </s:complexType> >> <s:simpleType name="LoginTokenType"> >> <s:restriction base="s:string"> >> <s:enumeration value="Unknown" /> >> <s:enumeration value="SessionSecureToken" /> >> <s:enumeration value="SessionHttpToken" /> >> <s:enumeration value="PersistentSecureToken" /> >> <s:enumeration value="PersistentHttpToken" /> >> </s:restriction> >> </s:simpleType> >> <s:complexType name="WebServiceResult"> >> <s:sequence> >> <s:element minOccurs="1" maxOccurs="1" name="Success" >> type="s:boolean" /> >> <s:element minOccurs="0" maxOccurs="1" name="ResultStatus" >> type="s:string" /> >> </s:sequence> >> </s:complexType> >> <s:element name="Login"> >> <s:complexType> >> <s:sequence> >> <s:element minOccurs="0" maxOccurs="1" name="userName" >> type="s:string" /> >> <s:element minOccurs="0" maxOccurs="1" name="password" >> type="s:string" /> >> <s:element minOccurs="0" maxOccurs="1" name="existingTokenIds" >> type="tns:ArrayOfString" /> >> </s:sequence> >> </s:complexType> >> </s:element> >> <s:element name="LoginResponse"> >> <s:complexType> >> <s:sequence> >> <s:element minOccurs="0" maxOccurs="1" name="LoginResult" >> type="tns:LoginResult" /> >> </s:sequence> >> </s:complexType> >> </s:element> >> <s:complexType name="LoginResult"> >> <s:complexContent mixed="false"> >> <s:extension base="tns:WebServiceResult"> >> <s:sequence> >> <s:element minOccurs="1" maxOccurs="1" name="UserID" >> type="s1:guid" /> >> <s:element minOccurs="0" maxOccurs="1" name="LoginTokens" >> type="tns:ArrayOfLoginToken" /> >> <s:element minOccurs="1" maxOccurs="1" name="IsNewSplitUser" >> type="s:boolean" /> >> <s:element minOccurs="0" maxOccurs="1" >> name="UserPropertyViolations" type="tns:ArrayOfString" /> >> </s:sequence> >> </s:extension> >> </s:complexContent> >> </s:complexType> >> <s:complexType name="ArrayOfLoginToken"> >> <s:sequence> >> <s:element minOccurs="0" maxOccurs="unbounded" name="LoginToken" >> nillable="true" type="tns:LoginToken" /> >> </s:sequence> >> </s:complexType> >> <s:complexType name="LoginToken"> >> <s:sequence> >> <s:element minOccurs="1" maxOccurs="1" name="TokenID" >> type="s1:guid" /> >> <s:element minOccurs="1" maxOccurs="1" name="Type" >> type="tns:LoginTokenType" /> >> <s:element minOccurs="1" maxOccurs="1" name="ExpirationDateUTC" >> type="s:dateTime" /> >> </s:sequence> >> </s:complexType> >> <s:element name="LoginResult" nillable="true" type="tns:LoginResult" /> >> <s:element name="LogoutResult" nillable="true" type="tns:LogoutResult" >> /> >> <s:element name="string" nillable="true" type="s:string" /> >> </s:schema> >> <s:schema elementFormDefault="qualified" >> targetNamespace="http://microsoft.com/wsdl/types/"> >> <s:simpleType name="guid"> >> <s:restriction base="s:string"> >> <s:pattern >> value="[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}" >> /> >> </s:restriction> >> </s:simpleType> >> </s:schema> >> <s:schema >> targetNamespace="http://soa.mycompany.com/webservices/AbstractTypes"> >> <s:import namespace="http://schemas.xmlsoap.org/soap/encoding/" /> >> <s:complexType name="StringArray"> >> <s:complexContent mixed="false"> >> <s:restriction base="soapenc:Array"> >> <s:sequence> >> <s:element minOccurs="0" maxOccurs="unbounded" name="String" >> type="s:string" /> >> </s:sequence> >> </s:restriction> >> </s:complexContent> >> </s:complexType> >> </s:schema> >> </wsdl:types> >> <wsdl:message name="LoginSoapIn"> >> <wsdl:part name="parameters" element="tns:Login" /> >> </wsdl:message> >> <wsdl:message name="LoginSoapOut"> >> <wsdl:part name="parameters" element="tns:LoginResponse" /> >> </wsdl:message> >> <wsdl:portType name="MyModuleServiceSoap"> >> <wsdl:operation name="Login"> >> <wsdl:input message="tns:LoginSoapIn" /> >> <wsdl:output message="tns:LoginSoapOut" /> >> </wsdl:operation> >> </wsdl:portType> >> <wsdl:binding name="MyModuleServiceSoap" type="tns:MyModuleServiceSoap"> >> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" /> >> <wsdl:operation name="Login"> >> <soap:operation soapAction="http://soa.mycompany.com/webservices/Login" >> style="document" /> >> <wsdl:input> >> <soap:body use="literal" /> >> </wsdl:input> >> <wsdl:output> >> <soap:body use="literal" /> >> </wsdl:output> >> </wsdl:operation> >> </wsdl:binding> >> <wsdl:service name="MyModuleService"> >> <wsdl:port name="MyModuleServiceSoap" binding="tns:MyModuleServiceSoap"> >> <soap:address >> location="http://soa.0002.dev.mycompany.com/MyModuleFacility/MyModuleService.asmx" >> /> >> </wsdl:port> >> </wsdl:service> >> </wsdl:definitions> >> > > On the face of it that looks OK. Can you tell if the IOOB was on the > request or the response? Do you still have the full stack trace? > > Simon > > -- > Apache Tuscany committer: tuscany.apache.org > Co-author of a book about Tuscany and SCA: tuscanyinaction.com > > It was on the request. Full stack below. Version 1.6 Remember, I noted that > the OMElementWrapperHandler class changed in 2. > > org.apache.axis2.AxisFault: 1 > at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430) > at > org.apache.tuscany.sca.binding.ws.axis2.Axis2ServiceInOutSyncMessageReceiver.invokeBusinessLogic(Axis2ServiceInOutSyncMessageReceiver.java:94) > at > org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver.invokeBusinessLogic(AbstractInOutSyncMessageReceiver.java:42) > at > org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:100) > at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:176) > at > org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275) > at > org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:133) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) > at > org.apache.tuscany.sca.host.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:107) > at > org.apache.tuscany.sca.host.webapp.TuscanyServletFilter.doFilter(TuscanyServletFilter.java:94) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852) > at > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) > at > org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) > at java.lang.Thread.run(Unknown Source) > Caused by: java.lang.ArrayIndexOutOfBoundsException: 1 > at > org.apache.tuscany.sca.databinding.axiom.OMElementWrapperHandler.setChildren(OMElementWrapperHandler.java:76) > at > org.apache.tuscany.sca.databinding.axiom.OMElementWrapperHandler.setChildren(OMElementWrapperHandler.java:48) > at > org.apache.tuscany.sca.core.databinding.transformers.Input2InputTransformer.transform(Input2InputTransformer.java:206) > at > org.apache.tuscany.sca.core.databinding.transformers.Input2InputTransformer.transform(Input2InputTransformer.java:45) > at > org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediate(MediatorImpl.java:113) > at > org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediateInput(MediatorImpl.java:431) > at > org.apache.tuscany.sca.core.databinding.wire.DataTransformationInterceptor.invoke(DataTransformationInterceptor.java:65) > at > org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:349) > at > org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:193) > at $Proxy24.Login(Unknown Source) > at > com.mycompany.myproduct.authentication.impl.DefaultImplementation.doFoo(DefaultImplementation.java:22) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) > at java.lang.reflect.Method.invoke(Unknown Source) > at > org.apache.tuscany.sca.implementation.spring.invocation.SpringInvoker.doInvoke(SpringInvoker.java:97) > at > org.apache.tuscany.sca.implementation.spring.invocation.SpringInvoker.invoke(SpringInvoker.java:113) > at > org.apache.tuscany.sca.core.databinding.wire.DataTransformationInterceptor.invoke(DataTransformationInterceptor.java:67) > at > org.apache.tuscany.sca.policy.authentication.basic.BasicAuthenticationServicePolicyInterceptor.invoke(BasicAuthenticationServicePolicyInterceptor.java:82) > at > org.apache.tuscany.sca.core.invocation.RuntimeWireInvoker.invoke(RuntimeWireInvoker.java:129) > at > org.apache.tuscany.sca.core.invocation.RuntimeWireInvoker.invoke(RuntimeWireInvoker.java:104) > at > org.apache.tuscany.sca.core.invocation.RuntimeWireInvoker.invoke(RuntimeWireInvoker.java:98) > at > org.apache.tuscany.sca.core.assembly.RuntimeWireImpl.invoke(RuntimeWireImpl.java:173) > at > org.apache.tuscany.sca.binding.ws.axis2.Axis2ServiceProvider.invokeTarget(Axis2ServiceProvider.java:766) > at > org.apache.tuscany.sca.binding.ws.axis2.Axis2ServiceInOutSyncMessageReceiver.invokeBusinessLogic(Axis2ServiceInOutSyncMessageReceiver.java:70) > Ok, so it is getting through basic authentication and, as you say, failing on the transformation going out to the external service. If you take out the definitions.xml file then it will fail on the basic authentication and won't get as far as calling the external service hence no IOOB in that case. How did you generate the interface that contains the Login operation from the WSDL? I'll see if I can mock it up here as see if I can see what's going wrong with the wrapping. Simon -- Apache Tuscany committer: tuscany.apache.org Co-author of a book about Tuscany and SCA: tuscanyinaction.com Did a straightforward wsdl2java from Axis 2 on the WSDL using the below command line, then included the generated source in the project, and hooked it up. C:\axis2-1.5.1\bin>wsdl2java -o c:\temp\wsdl2java -ss -ssi -uri c:\temp\wsdl2java\MyService.wsdl