On further inspecting my problem, it apears that axis was not setting a default namespace. .NET was expecting the parameters to be in the same namespace as the method, but axis was only setting a namespace for the method, and not for the parameters.
My overall impressions of SOAP (not refering to axis here!) have not been that great. I think it is far from the "Simple" protcol it was meant to be! It looks simple on paper, but when you try mixing up different implementations in practice, getting it to work is quite the opposite. I quite like axis, especially the .jws files! Although i do prefer .NET's http/html version to the "axis web service here"! Daniel. > -----Original Message----- > From: Leena Janardanan [mailto:[EMAIL PROTECTED] > Sent: 19 August 2004 17:36 > To: [EMAIL PROTECTED] > Subject: RE: Wrapped style and elementFormDefault="unqualified" > > > Frans, > > The problem I was having was that even though my server schema said > elementFormDefault="unqualified", Axis was setting a default namespace > for the entire body, which of course, is wrong. That's why .Net was > complaining.I had to work around this by defining an empty default > namespace for the body, like : xmlns="". > > I agree with Anne - I don't think .Net would care whether you use a > prefixed namespace or not, as long as it semantically equivalent to what > the schema specified. And, Daniel seems to have the opposite problem > from what you are seeing. > > Have you checked your schema ? What does your it say - is it > elementformDefault="qualified" or "unqualified" ? > > Leena. > > -----Original Message----- > From: Daniel Perry [mailto:[EMAIL PROTECTED] > Sent: Thursday, August 19, 2004 5:07 AM > To: [EMAIL PROTECTED] > Subject: RE: Wrapped style and elementFormDefault="unqualified" > > I have also come accross this problem. (axis client to .NET) > > My problem was that axis was using prefixes, and .NET would NOT work > unless > using a default namespace and NO prefixes. > > Although, it worked fine when i didnt have to pass any parameters. > > My solution was to make my own SoapEnvelope (from strings) and make a > call > using that rather than let axis make to envelope iteself. A messy > workaround! > > .NET was a real pain in the ass to intergrate with! > > Daniel. > > > > > -----Original Message----- > > From: Anne Thomas Manes [mailto:[EMAIL PROTECTED] > > Sent: 19 August 2004 13:01 > > To: [EMAIL PROTECTED] > > Subject: RE: Wrapped style and elementFormDefault="unqualified" > > > > > > Frans, > > > > What error are you receiving from .NET? As you say, the two messages > are > > semantically equivalent, and .NET doesn't care whether you use a > prefixed > > namespace or a default namespace. Perhaps there are subelements in > Node2 > > that should not be namespace prefixed? That would make sense and be > > consistent with Leena's error. > > > > - Anne > > > > -----Original Message----- > > From: Frans Flippo [mailto:[EMAIL PROTECTED] > > Sent: Thursday, August 19, 2004 4:42 AM > > To: [EMAIL PROTECTED] > > Subject: Re: Wrapped style and elementFormDefault="unqualified" > > > > Hi folks, > > > > Has anybody found a solution to this? I'm having a similar issue, but > in > > my case it's an Axis client accessing a .Net server. Axis is using a > > default namespace whereas the .Net server on the other side is > expecting > > an explicit namespace, e.g.: > > > > Axis generates: > > > > <?xml version="1.0" encoding="UTF-8"?> > > <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> > > <Node1 xmlns="http://www.winterthur.nl/schema/example"> > > <Node2>Node2 content</Node2> > > </Node1> > > </soapenv:Body> > > </soapenv:Envelope> > > > > .Net expects: > > > > <?xml version="1.0" encoding="UTF-8"?> > > <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> > > <ns1:Node1 > xmlns:ns1="http://www.winterthur.nl/schema/example"> > > <ns1:Node2>Node2 content</ns1:Node2> > > </ns1:Node1> > > </soapenv:Body> > > </soapenv:Envelope> > > > > (The nodes aren't actually called Node1 and Node2, but I can't show > the > > actual message). > > > > Of course, both messages are semantically equivalent, but apparently > the > > .Net server doesn't understand that. > > > > Is there any way to tell axis to not use a default namespace when > > creating its xml? Is there something in the WSDL that could > > influence this? > > > > Thanks, > > Frans > > > > > > Leena Janardanan wrote: > > > > >Hi all, > > > I am having interoperabilty problems when invoking an Axis > > wrapped style > > web service from a .Net client. Trying not to clutter with too much > > information here : > > > > > >My schema that defines the return types has > > ELEMENTFORMDEFAULT="UNQUALIFIED". However, I notice that when my > custom > > serializer class is called, the root element of the response looks > like > > this: > > > > > ><ComplexProcResponse xmlns="urn:DotNetTest:pkg1"> > > > > > >Which defines "urn:DotNetTest:pkg1" as the default namespace for all > the > > elements. Therefore, .Net complains when it recieves the > > response, by saying > > that : > > > > > >Element '{urn:DotNetTest:pkg1}Prop1' is unexpected according to > content > > model of parent element '{urn:DotNetTest:pkg1}Concept1'. > > >Expecting: Prop1, Prop2. > > > > > >This is what is returned from Axis : > > ><ComplexProcResponse xmlns="urn:DotNetTest:pkg1"> > > ><Concept1Array xmlns:pkg1="urn:DotNetTest:pkg1"> > > > <Concept1><Prop1>a</Prop1><Prop2>b</Prop2></Concept1> > > > <Concept1><Prop1>c</Prop1><Prop2>d</Prop2></Concept1> > > > <Concept1><Prop1>e</Prop1><Prop2>f</Prop2></Concept1> > > ></Concept1Array> > > ></ComplexProcResponse> > > > > > > > > >Whereas, this is what should be : > > > <ns1:ComplexProcResponse > > soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > > xmlns:ns1="urn:DotNetTest:pkg1"> > > ><pkg1:Concept1Array xmlns:pkg1="urn:DotNetTest:pkg1"> > > > > <pkg1:Concept1><Prop1>a</Prop1><Prop2>b</Prop2></pkg1:Concept1> > > > > <pkg1:Concept1><Prop1>c</Prop1><Prop2>d</Prop2></pkg1:Concept1> > > > > <pkg1:Concept1><Prop1>e</Prop1><Prop2>f</Prop2></pkg1:Concept1> > > ></pkg1:Concept1Array> > > > > > >Note: In my schema, Concept1Array and Concept1 are defined as > qualified. > > Only Prop1 and Prop2 are unqualified, by default. > > > > > >The following XML is generated by my serializer and written to > > the context > > (context.writeString()): > > ><pkg1:Concept1Array xmlns:pkg1="urn:DotNetTest:pkg1"> > > > > <pkg1:Concept1><Prop1>a</Prop1><Prop2>b</Prop2></pkg1:Concept1> > > > > <pkg1:Concept1><Prop1>c</Prop1><Prop2>d</Prop2></pkg1:Concept1> > > > > <pkg1:Concept1><Prop1>e</Prop1><Prop2>f</Prop2></pkg1:Concept1> > > ></pkg1:Concept1Array> > > > > > >Therefore, if the root element ComplexProcResponse didn't have > > the default > > namespace, all would be well. > > > > > > > > > > > >The wsdd entry for my web service looks like this: > > > > > ><service name="pkg1_doc" style="wrapped" use="literal"> > > > <operation name="ComplexProc" qname="ns8:ComplexProc" > > returnQName="ns8:Concept1Array" returnType="ns8:Concept1ArrayType" > > xmlns:ns8="urn:DotNetTest:pkg1"/> > > > <parameter name="allowedMethods" value="*"/> > > > <parameter name="className" value="DotNetTest.pkg1.WSBroker"/> > > > <wsdlFile>wsdl/DotNetTest_pkg1_doc.wsdl</wsdlFile> > > > > > > <typeMapping > > > deserializer="com.blackpearl.service.websphere.ParamDeserializerFactory" > > encodingStyle="" qname="ns9:Concept1ArrayType" > > serializer="com.blackpearl.service.websphere.ResultSerializerFactory" > > type="java:com.blackpearl.service.datamodel.ResultWrapper" > > xmlns:ns9="urn:DotNetTest:pkg1"/> > > > </service> > > > > > > > > >Is there any way to turn this off ? Any parameter that I can set ? > OR, is > > there way to do this in my custom serializer class ? Or is there a way > to > > make Axis use the schemas that define my types ? Axis doesn't > > seem to do any > > validation against schemas at all. > > >Any help is appreciated, > > > Thanks in advance, > > > Leena. > > > > > > > > > > > > > > > -- > > Quinity : Your Partner In eBusiness Solution Delivery > > > > Biltstraat 449 > > 3572 AW Utrecht > > P.O. Box 13097 > > 3507 LB Utrecht > > The Netherlands > > > > Telephone: (+31) (0)30 2335999 > > Fax : (+31) (0)30 2335998 > > WWW : http://www.quinity.com > > ================================================================ > > The information transmitted is intended only for the person or > > entity to which it is addressed and may contain confidential > > and/or privileged material. Any review, retransmission, > > dissemination or other use of, or taking of any action in > > reliance upon, this information by persons or entities other > > than the intended recipient is prohibited. If you received > > this in error, please contact the sender and delete the material > > from any computer. Quinity is neither liable for the proper and > > complete transmission of the information contained in this > > communication nor for any delay in its receipt. > > ================================================================ > > > > > > > >