Adding [Axis2]prefix..
Moving the conversation over to Axis2-dev list...Please post your replies to dev list..
 
Hi Laurent and devs,
Currently [1],[2] are the intended behavior. Do you have a use case which makes it mandatory to send the base64 as an attachment, without embedding in the SOAP message...
 
I'm not sure whether we need to support the [3].
 
On the other hand we use java mail to parse the contents inside the mime part(Contents after ripping off the boundaries). IMHO java mail should parse it if the encoding is intended to be decoded...
 
Thoughts????
 
~Thilina
 
On 5/29/06, Laurent CELLA <[EMAIL PROTECTED] > wrote:
Hi dear Axis Users.

I am developing a Service with SOAP with attachments ( axis 2 rel 1.0 )
I dont use MTOM so I prefer retrieve the attachments content by their
dataHandlers with the technic showed in the example
http://ws.apache.org/axis2/1_0/mtom-guide.html

I have some questions about the way Axis Handles the Parts it receives,
especially when "Content Transfer Encoding" is set as a Part Header and
not using MTOM.

1.

For instance, if I submit a attachment at client side base64 encoded,
and specifying "Content-Transfer-Encoding = base64" in the Header, the
result is not automatically decoded at server side, I must call
Base64.decode( ... ) explicitely ).

Is it a normal behaviour ? Can we configure the service so it will
decode on its own ?
2.

I have noticed the same thing with encoding "quoted-printable" in an
attachment : looks like it is up to me to do the decode Work.
Is it a normal behaviour ? Or I miss something ?

3.
Encoding of the SOAP part of request.
The SOAP enveloppe is the first MimePart itself.

Here is an example wich uses "quoted-printable" encoding for the SOAP Body.

------=_Part_1_20639876.1146648323575
Content-Type: application/xop+xml; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Content-ID: </doc-access-soap/process-request>

<?xml version=3D" 1.0" encoding=3D"utf-8"?>
<soapenv:Envelope xmlns:soapenv=3D"http://schemas.xmlsoap.org/soap/envelope=
/">
<soapenv:Body xmlns:types=3D" http://www.inexbee.com/m2doc/m2doc">
<processRequest xmlns=3D"http://www.inexbee.com/m2doc/m2doc"
    mailProcessRequest=3D"=
true">
( ... )
</processRequest>
</soapenv:Body></soapenv:Envelope>

Such a request cause Axis Exceptions such this one ( release 0.95 ) :
It seems the AXIS Api tries to parse XML prior to apply
"quoted-printable" decoding. Is it a good interpretation ?

<?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope
xmlns:soapenv=" http://www.w3.org/2003/05/soap-envelope "><soapenv:Header
/><soapenv:Body><soapenv:Fault><soapenv:Code><soapenv:Value>soapenv:Sender</soapenv:Value></soapenv:Code><soapenv:Reason><soapenv:Text
xml:lang="en-US">Unexpected character '3' (code 51); expected a quote
character enclosing value for 'version'
at [row,col {unknown-source}]: [1,15]; nested exception is:
      com.ctc.wstx.exc.WstxUnexpectedCharException : Unexpected
character '3' (code 51); expected a quote character enclosing value for
'version'
at [row,col {unknown-source}]:
[1,15]</soapenv:Text></soapenv:Reason><soapenv:Detail><Exception
xmlns="">org.apache.axis2.AxisFault: Unexpected character '3' (code 51);
expected a quote character enclosing value for 'version'
at [row,col {unknown-source}]: [1,15]; nested exception is:
       com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected
character '3' (code 51); expected a quote character enclosing value for
'version'
at [row,col {unknown-source}]: [1,15]
      at
org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest (HTTPTransportUtils.java:297)
      at
org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:160)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
      at javax.servlet.http.HttpServlet.service (HttpServlet.java:802)
      at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
      at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java :173)
      at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
      at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
      at
org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:126)
      at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
      at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
      at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
      at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
      at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection (Http11BaseProtocol.java:664)
      at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
      at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java :80)
      at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
      at java.lang.Thread.run(Thread.java:595)
Caused by: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected
character '3' (code 51); expected a quote character enclosing value for
'version'
at [row,col {unknown-source}]: [1,15]
      at
com.ctc.wstx.io.InputBootstrapper.reportUnexpectedChar(InputBootstrapper.java :430)
      at
com.ctc.wstx.io.InputBootstrapper.handleEq(InputBootstrapper.java:344)
      at
com.ctc.wstx.io.InputBootstrapper.readXmlVersion(InputBootstrapper.java:243)
      at
com.ctc.wstx.io.InputBootstrapper.readXmlDecl (InputBootstrapper.java:205)
      at
com.ctc.wstx.io.ReaderBootstrapper.bootstrapInput(ReaderBootstrapper.java:139)
      at
com.ctc.wstx.stax.WstxInputFactory.createSR(WstxInputFactory.java:503)
      at
com.ctc.wstx.stax.WstxInputFactory.createSR(WstxInputFactory.java:558)

***

Laurent CELLA
Inexbee Software





---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to