Now I send the string from the VB client to the Apache service via Literal
encoding(change the WSDL->Operation->Use from encoded to literal ). At the
service side, I changed the DeploymentDescriptor to use the
XMLParameterSerializer to be the deserializer of the large input String
parameter s4(pls see below). 
In order to use the XMLParameterSerializer , I changed the Java function's
input parameter to "Parameter" type(otherwise I would receive a "signature
type not match" if I still use String type). I then tried to cast this
"Parameter" back to a string but somehow the "Parameter" the java function
received from the SOAP layer is always NULL. Could anyone tell what might be
wrong?

I am now at my wit's end and any of your help is highly appreciated.

Thank you in advance.

-Chengmin

============================================================================
===============
<isd:service xmlns:isd="http://xml.apache.org/xml-soap/deployment";
id="urn:sendvis-service">
        <isd:provider type="java" scope="Request" methods="updateVIS getVIS
importVIS">
                <isd:java class="com.iss.vis.SendVIS" static="false"/>
        </isd:provider>
        <isd:mappings>
                <isd:map
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
xmlns:x="urn:sendvis-service" qname="x:s"
xml2JavaClassName="org.apache.soap.encoding.soapenc.StringDeserializer"/>
                <isd:map
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
xmlns:x="urn:sendvis-service" qname="x:s1"
xml2JavaClassName="org.apache.soap.encoding.soapenc.StringDeserializer"/>
                <isd:map
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
xmlns:x="urn:sendvis-service" qname="x:s2"
xml2JavaClassName="org.apache.soap.encoding.soapenc.StringDeserializer"/>
                <isd:map
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
xmlns:x="urn:sendvis-service" qname="x:s3"
xml2JavaClassName="org.apache.soap.encoding.soapenc.StringDeserializer"/>
                <isd:map
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
xmlns:x="urn:sendvis-service"  qname="x:s4"
xml2JavaClassName="org.apache.soap.encoding.literalxml.XMLParameterSerialize
r"/>
                <isd:map
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; xmlns:x=""
qname="x:strings"
xml2JavaClassName="org.apache.soap.encoding.soapenc.ArraySerializer"/>
        </isd:mappings>
        
<isd:faultListener>org.apache.soap.server.DOMFaultListener</isd:faultListene
r>
</isd:service>

-----Original Message-----
From: Barnaby James [mailto:[EMAIL PROTECTED]]
Sent: Thursday, October 25, 2001 6:56 PM
To: [EMAIL PROTECTED]
Subject: RE: What is the best way to send Large String from the Client
to the Service?


Did you try sending it as a data base64 encoded parameter rather than a
string? i.e. a parameter of xsi:type="SOAP-ENC:base64"? I would think this
would be handled more efficiently than an xsi:type="xsd:string" parameter.
If your class on the Apache SOAP side is byte[] it will be automagically
converted to SOAP-ENC:base64.

Barnaby

-----Original Message-----
From: Paramdeep Singh [mailto:[EMAIL PROTECTED]]
Sent: Thursday, October 25, 2001 3:13 AM
To: [EMAIL PROTECTED]
Subject: Re: What is the best way to send Large String from the Client
to the Service?


Hi,

I think that if the size of the string is too large, then you should send it
as an attachment.

I remember of seeing an article somewhere, which mentioned that if the
string that you are sending is of a very large length, then it may not get
the correct results as well. I think that I read it on this mailing list
only, but cant remember it off-hand.

Regards
Paramdeep


----- Original Message -----
From: "Ding, Chengmin" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, October 25, 2001 2:05 AM
Subject: What is the best way to send Large String from the Client to the
Service?


> HI, Soap folks,
>   Our web service is based on Apache Soap 2.2 and the web service client
is
> based on Microsoft Soap Tool kit 2.0.
> The client periodically sends an XML String as one of an array parameter
to
> the web service and the web service will do some manipulations of that
> string. The input string used to be below 100 KB and the performance is
> satisfactory. Recently the input XML string increases to around 1 MB and
the
> web service starts to respond extremely slow.
> We put some output statement at the beginning of the web service function,
> now it takes about 15 minutes before we see those output. We want to know
> why it takes Apache Soap 2.2 so long to respond? We found some previous
post
> that mentions using XML_LITERAL_ENCODING will make it faster, but since we
> are using MS SOAPtoolkit, we don't know how to sent this encoding.
>
> Any of your help will be highly appreciated.
>
> Thanks.
>
> -Chengmin


_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com

Reply via email to