[ http://issues.apache.org/jira/browse/AXIS-1529?page=comments#action_12413837 ]
John Busfield commented on AXIS-1529: ------------------------------------- AXIS-2473 and AXIS-2449 describe the same issue and are also unresolved. > Bad namespaces in serialized beans in doc/literal > ------------------------------------------------- > > Key: AXIS-1529 > URL: http://issues.apache.org/jira/browse/AXIS-1529 > Project: Apache Axis > Type: Bug > Components: Serialization/Deserialization > Versions: current (nightly) > Environment: win xp, jdk 1.4.2, jboss 3.2.5 > Reporter: Tudor Teusan > > It seems that AXIS (latest CVS) doesn't serialize properly complex > objects (beans) when in doc/literal. > More precisely it doesn't handle as it should a SOAP body with multiple > namespaces, as shown in the following exemple : > (I've come upon this problem trying to return a tree structure from a > web service) > The service is a TreeProvider defined as > --- > class TreeProvider { > private Node root; > ... > public Node getTree(){ return root; } > ... > } > --- > Node being a very simple bean with two attributes : id and name. > --- > class Node { > private String id, name; > public string getName(){ return name; } > ... > } > --- > Node and TreeProvider are in 2 different packages > "com.knowesis.ws.TreeProvider" and "com.knowesis.tree.Node" ( left out for > brevity). > In the constructor of TreeProvider the root node is initilized as > id="root", name="root". > The deploy.wsdd is : > --- > ... > <service name="TreeProvider" style="document" use="literal"> > <namespace>urn:AthanorWS:ws</namespace> > <parameter name="className" value="com.knowesis.ws.TreeProvider"/> > <parameter name="allowedMethods" value="getTree"/> > <beanMapping xmlns:data="urn:AthanorWS:data" qname="data:Node" > languageSpecificType="java:com.knowesis.tree.Node"/> > </service> > ... > --- > the service gets deployed ok and the types section in the auto-generated wsdl > looks like this : > --- > ... > <wsdl:types> > <schema elementFormDefault="qualified" > targetNamespace="urn:AthanorWS:data" > xmlns="http://www.w3.org/2001/XMLSchema"> > > <complexType name="Node"> > <sequence> > <element name="id" nillable="true" type="xsd:string" /> > <element name="name" nillable="true" type="xsd:string" > /> > </sequence> > </complexType> > </schema> > <schema elementFormDefault="qualified" > targetNamespace="urn:AthanorWS:ws" > xmlns="http://www.w3.org/2001/XMLSchema"> > <import namespace="urn:AthanorWS:data" /> > <element name="getTreeReturn" type="tns1:Node" /> > </schema> > </wsdl:types> > ... > --- > notice the the two namespaces (and this is how it should be) and the > elementFormDefault="qualified" for the two schemas. > A getTree() invocation results in : > --- > ... > <soapenv:Body> > <getTreeReturn xmlns="urn:AthanorWS:ws"> > <id>root</id> > <name>root</name> > </getTreeReturn> > </soapenv:Body> > ... > --- > The contents of the generated body is not valid with respect to the wsdl > specified schemas. > "id" and "root" elements are in the same namespace as "getTreeReturn" > (urn:AthanorWS:ws) instead of being in their own "urn:AthanorWS:data" > namespace : > <getTreeReturn xmlns="urn:AthanorWS:ws"> > <id xmlns="urn:AthanorWS:data">root</id> > <name xmlns="urn:AthanorWS:data">root</name> > </getTreeReturn> > As a direct consequence a generated .Net client simply refuses to > deserialize the response and always returns an empty answer. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
