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]

Reply via email to