If you are using RPC style, then the auto-generated accessor elements created for each parameter type *must* be unqualified. If you want to change that, you must switch to document style. Axis will always generate elementFormDefault="unqualified".
Anne On 9/1/06, Rajesh Narayan <[EMAIL PROTECTED]> wrote:
Thanks Anne for the explanation. Another quick query: Is there a way to specify the elementFormDefault variable explicitly in wsdd? I tried having it as a parameter in globalConfiguration but it doesn't seem to work. This is what i used: <parameter name="elementFormDefault " value="unqualified"/> Regards, Rajesh On 9/1/06, Anne Thomas Manes <[EMAIL PROTECTED]> wrote: > Actually, in the response, all your child elements are qualified. > That's the effect of using the default namespace declaration -- all > child elements are qualified by the default namespace unless > specifically overrided which another namespace declaration. In other > words, this: > > <foobar xmlns="urn:foo:bar"> > <foo>string</foo> > <bar>string</bar> > </foobar> > > is semantically equivalent to this: > > <ns:foobar xmlns:ns="urn:foo:bar"> > <ns:foo>string</ns:foo> > <ns:bar>string</ns:bar> > </ns:foobar> > > When using the default namepsace, if you want to make child elements > unqualified, then you must specifically override the default, like > this: > > <foobar xmlns="urn:foo:bar"> > <foo xmlns="">string</foo> > <barxmlns="">string</bar> > </foobar> > > See http://atmanes.blogspot.com/2006/07/short-explanation-of-xml-namespaces.html > for more explanation of namespaces. > > In any case, I recommend that you use the Axis "WRAPPED" style. It > produces document/literal, but you don't need to change your service. > > Change the <service> definition to: > <service name="OBAWebService" provider="java:RPC" > style="wrapped" use="literal"> > > Also change the sendMultiRefs parameter value to "false". > > Anne > > On 9/1/06, Rajesh Narayan <[EMAIL PROTECTED]> wrote: > > > > Hi Anne, > > > > Thanks a lot for the response. > > > > The request that I had attached was a request i had generated through a test > > harness and hence it is rpc/encoded. > > The response however has the child elements unqualified. > > > > We initially had rpc/encoded but changed to rpc/literal because SAP/XI did > > not support arrays with sopenc format. > > > > One possible solution would be switching to document/literal but that would > > require considerable amount of changes at the web service end > > > > The reason I wanted the prefix was because the SAP/XI client can accept > > similar messages if it's with a prefix. > > > > You can have a look at my server-config.wsdd which is attached below > > > > Thanks Again > > > > <?xml version="1.0" encoding="UTF-8"?> > > <deployment xmlns="http://xml.apache.org/axis/wsdd/" > > xmlns:java=" > > http://xml.apache.org/axis/wsdd/providers/java "> > > <globalConfiguration> > > <parameter name="sendMultiRefs" value="true"/> > > <parameter name="disablePrettyXML" value="true"/> > > <parameter name="adminPassword" value="admin"/> > > <parameter name="dotNetSoapEncFix" value="true"/> > > <parameter name="enableNamespacePrefixOptimization" > > value="true"/> > > <parameter name="sendXMLDeclaration" value="true"/> > > <parameter name="attachments.implementation" > > value="org.apache.axis.attachments.AttachmentsImpl "/> > > <parameter name="sendXsiTypes" value="false"/> > > <requestFlow> > > <handler > > type="java:org.apache.axis.handlers.JWSHandler"> > > <parameter name="scope" value="session"/> > > </handler> > > <handler type="java: > > org.apache.axis.handlers.JWSHandler"> > > <parameter name="scope" value="request"/> > > <parameter name="extension" value=".jwr"/> > > </handler> > > </requestFlow> > > </globalConfiguration> > > <handler name="Authenticate" > > type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/> > > <handler name="LocalResponder" type="java: > > org.apache.axis.transport.local.LocalResponder"/> > > <handler name="URLMapper" > > type="java:org.apache.axis.handlers.http.URLMapper"/> > > <service name="AdminService" provider="java:MSG"> > > <parameter name="allowedMethods" value="AdminService"/> > > <parameter name="enableRemoteAdmin" value="false"/> > > <parameter name="className" value=" org.apache.axis.utils.Admin"/> > > <namespace> http://xml.apache.org/axis/wsdd/</namespace> > > </service> > > <service name="OBAWebService" provider="java:RPC" style="rpc" > > use="literal"> > > <parameter name="allowedMethods" > > value="createUser,updateProfile,readUser,deleteUser"/> > > <parameter name="scope" value="Application"/> > > <parameter name="className" value=" > > com.test.webservices.OBAWebService"/> > > <typeMapping > > deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" > > encodingStyle="" qname="ns1:OBAUser" > > serializer="org.apache.axis.encoding.ser.BeanSerializerFactory > > " type="java:com.test.OBAUserBean" xmlns:ns1="urn:OBAWebService"/> > > <typeMapping xmlns:ns2="urn:OBAWebService" qname="ns2:ArrayOf_xsd_string" > > type="java:java.lang.String []" > > serializer="org.apache.axis.encoding.ser.ArraySerializerFactory" > > deserializer="org.apache.axis.encoding.ser.ArrayDeserializerFactory" > > encodingStyle="" /> > > </service> > > <service name="Version" provider="java:RPC"> > > <parameter name="allowedMethods" value="getVersion"/> > > <parameter name="className" value="org.apache.axis.Version"/> > > </service> > > <transport name="http"> > > <requestFlow> > > <handler type="URLMapper"/> > > <handler > > type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/> > > </requestFlow> > > <parameter name="qs:list" value=" > > org.apache.axis.transport.http.QSListHandler "/> > > <parameter name="qs:wsdl" > > value="org.apache.axis.transport.http.QSWSDLHandler"/> > > <parameter name="qs:method" value=" > > org.apache.axis.transport.http.QSMethodHandler "/> > > </transport> > > <transport name="local"> > > <responseFlow> > > <handler type="LocalResponder"/> > > </responseFlow> > > </transport> > > </deployment> > > > > > > > > > > > > On 9/1/06, Anne Thomas Manes <[EMAIL PROTECTED]> wrote: > > > > > Note the following errors based on your assertion that this is an > > rpc/literal service: > > > > - The input message is using RPC/encoded, and I'm quite sure that > > SAP XI does not support RPC literal. > > - The child element of the return wrapper element (<readUserReturn>) > > is qualified, which is inconsistent with RPC/literal -- all children > > of > > the generated wrapper elements in RPC/literal must be unqualified. > > > > I seriously doubt that the problem is caused by use of the default > > namespace instead of a namespace assigned a prefix. > > > > <readUserResponse xmlns="urn:OBAWebService"> > > > > is semantically identical to > > > > <ns1:readUserResponse xmlns:ns1="urn:OBAWebService"> > > > > And I'm certain the XI can handle either case. > > > > My guess is that your problem is caused by the fact that neither XI > > nor Axis 1.3 supports RPC/literal. You should convert your service to > > either RPC/encoded or document/literal. > > > > Anne > > > > On 9/1/06, Rajesh Narayan <[EMAIL PROTECTED] > wrote: > > > > > > > > > Hi All, > > > > > > I am using Axis 1.3 rpc/literal style for my server and the client trying > > to > > > access our webservice is an SAP XI client. > > > > > > When I send the request: > > > > > > <?xml version='1.0' encoding='UTF-8'?> > > > <SOAP-ENV:Envelope > > > xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/ > > " > > > xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance" > > > xmlns:xsd=" http://www.w3.org/2001/XMLSchema "> > > > <SOAP-ENV:Body> > > > <ns1:readUser xmlns:ns1="urn:OBAWebService" SOAP-ENV:encodingStyle=" > > > http://schemas.xmlsoap.org/soap/encoding/ "> > > > <OBAUserRequestBean xsi:type="ns1:OBAUser"> > > > <errorMessages xmlns:ns2=" > > > http://schemas.xmlsoap.org/soap/encoding/ " > > > xsi:type="ns2:Array" ns2:arrayType="xsd:string[]" xsi:null="true"/> > > > <title xsi:type="xsd:string"></title> > > > <industrySector > > > xsi:type="xsd:string">VerynewSector</industrySector> > > > <status xsi:type="xsd:string" xsi:null="true"/> > > > <roles xmlns:ns3=" > > > http://schemas.xmlsoap.org/soap/encoding/ " > > > xsi:type="ns3:Array" ns3:arrayType="xsd:string[2]"> > > > <item xsi:type="xsd:string">sap_admin</item> > > > <item xsi:type="xsd:string">sap_account2</item> > > > </roles> > > > <authCode xsi:type="xsd:string"></authCode> > > > <returnCode xsi:type="xsd:string" xsi:null="true"/> > > > <newEmail xsi:type="xsd:string" xsi:null="true"/> > > > <firstName xsi:type="xsd:string"></firstName> > > > <lastName xsi:type="xsd:string"></lastName> > > > <segment xsi:type="xsd:string">VerynewSegment</segment> > > > <email xsi:type="xsd:string"> [EMAIL PROTECTED]</email> > > > </OBAUserRequestBean> > > > </ns1:readUser> > > > </SOAP-ENV:Body> > > > </SOAP-ENV:Envelope> > > > > > > The response I get is: > > > > > > <?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> > > > <readUserResponse xmlns="urn:OBAWebService"> > > > <readUserReturn> > > > <returnCode>0</returnCode> > > > <authCode xsi:nil="true"/> > > > <industrySector>sample_sector</industrySector> > > > <status>Success</status> > > > <roles xsi:nil="true"/> > > > <segment>sample_segment</segment> > > > <email>[EMAIL PROTECTED]</email> > > > <title>Mr.</title> > > > <firstName>abra</firstName> > > > <lastName>Dabra</lastName> > > > <errorMessages xsi:nil="true"/> > > > <newEmail xsi:nil="true"/> > > > </readUserReturn> > > > </readUserResponse> > > > </soapenv:Body> > > > </soapenv:Envelope> > > > > > > The respons edoes not have a namespace prefix associated with the > > > readUserResponse node, which is causing problems fro the XI client. Is > > there > > > any way we can change some configurations to get around this issue. > > > > > > Any help would be highly appreciated > > > > > > Regards, > > > > > > > > > Rajesh > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > >
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
