A colleague had this problem (when using Sun's webserver) and fixed it by 
setting this on the client.
            stub._getServiceClient().getOptions().setProperty(
                                HTTPConstants.CHUNKED, Constants.VALUE_FALSE);
 
I don't know if there is a way to say the same thing from the server, or if it 
is even necessary. The reason had something to do with whether the length was 
being passed. Sorry I am vague but this didn't happen directly to me so I don't 
know the exact particulars.

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Michele Amoretti
Sent: Thursday, April 19, 2007 8:50 AM
To: axis-user@ws.apache.org
Subject: Re: using MTOM in a AXIOM-based WS

Ok, it is setProperty()

Now I managed to transfer a file from the service to the client, but if I try 
to transfer a file > 23963 Bytes, the file is cut.

Should I make some adjustments in axis2.xml, or in Tomcat configuration?

I tried to enable caching both at the server side and at the client side, as 
explained in the tutorial:
           
options.setProperty(Constants.Configuration.CACHE_ATTACHMENTS,Constants.VALUE_TRUE);
options.setProperty(Constants.Configuration.ATTACHMENT_TEMP_DIR,
"C://axisTemp");
options.setProperty(Constants.Configuration.FILE_SIZE_THRESHOLD, "40000");

but with these lines, the client blocks immediately when trying to invoke any 
operation of the service (not only the one involving the file transfer..).

Any idea?

Thanks


On 4/18/07, Masin, Valerie <[EMAIL PROTECTED]> wrote:
> I believe it is setProperty(), not set() on the options object
>
> -----Original Message-----
> From: Michele Amoretti [mailto:[EMAIL PROTECTED]
> Sent: Wednesday, April 18, 2007 1:24 PM
> To: axis-user@ws.apache.org
> Subject: using MTOM in a AXIOM-based WS
>
> Hello,
>
> I am trying to create a new version of the "quickstartaxiom" sample, with the 
> StockQuoteService providing a getPriceFile operation which returns a file 
> using MTOM.
>
> In the MTOM tutorial unfortunately there are only parts of code (I cannot 
> find a complete example in axis2-1.1.1 - the mtom sample is not based on 
> AXIOM) thus I had to write the other parts, but since I have some problems in 
> invoking the service I think I have made a mistake somewhere.
>
>
> My new ***AXIOMClient*** should set
>
> options.set(Constants.Configuration.ENABLE_MTOM, 
> Constants.VALUE_TRUE);
>
> as explained in the tutorial, but the Options class has no "set"
> method and I cannot find the right one..
>
> Btw, I added to the client the following method:
>
>    public static OMElement getPriceFilePayload(String priceFileName) {
>         OMFactory fac = OMAbstractFactory.getOMFactory();
>         OMNamespace omNs = fac.createOMNamespace(
>
> "http://quickstart.samples/xsd";, "tns");
>
>         OMElement method = fac.createOMElement("getPriceFile", omNs);
>         OMElement value = fac.createOMElement("priceFileName", omNs);
>         value.addChild(fac.createOMText(value, priceFileName));
>         method.addChild(value);
>         return method;
>     }
>
> and in the main() method of the client I added the following part, for 
> getFilePrice invocation:
>
>             OMElement getPriceFilePayload = getPriceFilePayload("prova.txt"); 
> .......
>             result = sender.sendReceive(getPriceFilePayload);
>             OMElement ele = result.getFirstElement();
>             OMText binaryNode = (OMText) ele.getFirstOMChild();
>             DataHandler actualDH = (DataHandler) binaryNode.getDataHandler();
>             File file = new File("prova.txt");
>             FileOutputStream fileOutputStream = new FileOutputStream(file);
>             actualDH.writeTo(fileOutputStream);
>             fileOutputStream.flush();
>             fileOutputStream.close();
>
>
>
> In the ***StockQuoteService*** the getPriceFile method is implemented as 
> follows:
>
>
>  public OMElement getPriceFile(OMElement element) throws XMLStreamException {
>         element.build();
>         element.detach();
>
>         OMElement fileNameElement = element.getFirstElement();
>         String fileName = fileNameElement.getText();
>
>         System.out.println("fileName = " + fileName);
>
>         OMFactory fac = OMAbstractFactory.getOMFactory();
>         OMNamespace omNs =
>             fac.createOMNamespace("http://quickstart.samples/xsd";, "ns");
>         OMElement fileElement = fac.createOMElement("file", omNs);
>
>         FileDataSource dataSource =
>                 new FileDataSource(fileName);
>
>         DataHandler dataHandler = new DataHandler(dataSource);
>
>         // create an OMText node with the above DataHandler and set optimized 
> to true
>         OMText textData = fac.createOMText(dataHandler, true);
>
>         fileElement.addChild(textData);
>
>         OMElement method = fac.createOMElement("getPriceFileResponse", omNs);
>         OMElement value = fac.createOMElement("priceFile", omNs);
>         value.addChild(textData);
>         method.addChild(value);
>
>         return method;
>     }
>
>
> Is this ok? Where should I store the "prova.txt" file in the server?
> In the same folder in which I put the *.aar file?
>
> I attach to this mail the wsdl of the service, and the configuration file.
>
>
> I am using Tomcat as servlet engine, and the logs are clean at the server 
> side.
>
> At the client side the error message is:
>
>     [java] org.apache.axiom.om.OMException: Referenced Attachment not found 
> in the MIME Message.
> ContentID:1.urn:uuid:[EMAIL PROTECTED]
>      [java] at 
> org.apache.axiom.soap.impl.builder.MTOMStAXSOAPModelBuilder.getDataHandler(MTOMStAXSOAPModelBuilder.java:107)
>      [java] at 
> org.apache.axiom.om.impl.llom.OMTextImpl.getDataHandler(OMTextImpl.java:379)
>      [java] at 
> samples.quickstart.clients.AXIOMClient.main(AXIOMClient.java:105)
>      [java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>      [java] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>      [java] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>      [java] at java.lang.reflect.Method.invoke(Unknown Source)
>      [java] at 
> org.apache.tools.ant.taskdefs.ExecuteJava.run(ExecuteJava.java:202)
>      [java] at 
> org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:134)
>      [java] at org.apache.tools.ant.taskdefs.Java.run(Java.java:710)
>      [java] at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:178)
>      [java] at org.apache.tools.ant.taskdefs.Java.execute(Java.java:84)
>      [java] at 
> org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
>      [java] at org.apache.tools.ant.Task.perform(Task.java:364)
>      [java] at org.apache.tools.ant.Target.execute(Target.java:341)
>      [java] at org.apache.tools.ant.Target.performTasks(Target.java:369)
>      [java] at 
> org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
>      [java] at org.apache.tools.ant.Project.executeTarget(Project.java:1185)
>      [java] at 
> org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
>      [java] at 
> org.eclipse.ant.internal.ui.antsupport.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32)
>      [java] at org.apache.tools.ant.Project.executeTargets(Project.java:1068)
>      [java] at 
> org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.run(InternalAntRunner.java:423)
>      [java] at 
> org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.main(Internal
> AntRunner.java:137)
>
>
> Thank you very much!
>
> --
> Michele Amoretti, Ph.D.
> Distributed Systems Group
> Dipartimento di Ingegneria dell'Informazione Università degli Studi di 
> Parma http://www.ce.unipr.it/amoretti
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


--
Michele Amoretti, Ph.D.
Distributed Systems Group
Dipartimento di Ingegneria dell'Informazione Università degli Studi di Parma 
http://www.ce.unipr.it/amoretti

---------------------------------------------------------------------
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