lhe77,您好!
I don't know how can i mofify the tutorial? Maybe I don't have the
privilege.
======= 2008-01-31 15:16:05 您在来信中写道:=======
>Tribon,
>
>it would be nice if you could add some hint to the tutorial for those people
>facing the same problem.
>
>Thanks in advance,
>Lars
>
>
>
>
>Tribon Cheng wrote:
>>
>> puneetjain,您好!
>>
>> I meet the same problem, this is caused by
>> "File.createTempFile(filename)", the filename should not
>> be an absolute path, See the modified method code belowing:
>>
>>
>> private void onProviderExchange(MessageExchange exchange) throws
>> MessagingException
>> {
>> // Exchange is finished
>> if (exchange.getStatus() == ExchangeStatus.DONE)
>> {
>> return;
>> }
>> // Exchange has been aborted with an exception
>> else if (exchange.getStatus() == ExchangeStatus.ERROR)
>> {
>> return;
>> }
>> // Fault message
>> else if (exchange.getFault() != null)
>> {
>> exchange.setStatus(ExchangeStatus.DONE);
>> channel.send(exchange);
>> }
>> else
>> {
>> NormalizedMessage in = exchange.getMessage("in");
>>
>> if (in == null)
>> {
>> // no in message - strange
>> throw new
>> MessagingException("HandlerBean.onProviderExchange(): Exchange has no IN
>> message");
>> }
>> else
>> {
>> String fileName = null;
>> DataHandler content = null;
>> Set attNames = in.getAttachmentNames();
>> Iterator it = attNames.iterator();
>>
>> if (attNames.size()==1)
>> {
>> if (it.hasNext())
>> {
>> try
>> {
>>
>> //////mofify the code start
>> File file = new File(it.next().toString());
>> fileName =
>> file.getName();
>> content =
>> in.getAttachment(file.getAbsolutePath());
>>
>> File f = File.createTempFile("tmp_",
>> fileName);
>>
>> //////mofify the code
>> end
>>
>> FileOutputStream fos = new
>> FileOutputStream(f);
>> content.writeTo(fos);
>> fos.flush();
>> fos.close();
>>
>> // for the sake of simplicity only return the
>> file received as attachment
>> NormalizedMessage out =
>> exchange.createMessage();
>>
>> // set the content to dummy xml tag
>> out.setContent(new
>> StringSource("<payload/>"));
>>
>> FileDataSource fds = new FileDataSource(f);
>> InputStream is = fds.getInputStream();
>>
>> // create a handler for the attachment
>> DataHandler dh = new DataHandler(new
>> StreamDataSource(is, fds.getContentType()));
>>
>> // and add it to the message
>> out.addAttachment(fileName+"_cch", dh);
>>
>> // prepare and send the exchange
>> exchange.setMessage(out, "out");
>> channel.send(exchange);
>>
>> f.deleteOnExit();
>> }
>> catch (IOException ex)
>> {
>> throw new
>> MessagingException("HandlerBean.onProviderExchange(): " +
>> ex.getLocalizedMessage());
>> }
>> }
>> }
>> else
>> {
>> // more or less than one attachment
>> throw new
>> MessagingException("HandlerBean.onProviderExchange(): Wrong message format
>> (invalid attachment count)");
>> }
>> }
>> }
>> }
>>
>> ======= 2008-01-30 18:37:38 您在来信中写道:=======
>>
>>>
>>>I have follow all the step to create http upload application given in the
>>>tutorial of servicemix successfully.
>>>The deployable of the application is successfully deployed on the
>>>servicemix.
>>>When I create a client and try to upload a file using the appliaction
>>>following exception displayed in the browser:
>>>
>>><?xml version="1.0" encoding="UTF-8" ?>
>>>- <error>
>>>- <![CDATA[
>>>javax.jbi.messaging.MessagingException: HandlerBean.onProviderExchange():
>>>The filename, directory name, or volume label syntax is incorrect
>>> at
>>>org.apache.servicemix.jbi.HandlerBean.onProviderExchange(HandlerBean.java:173)
>>> at
>>>org.apache.servicemix.jbi.HandlerBean.onMessageExchange(HandlerBean.java:56)
>>> at
>>>org.apache.servicemix.bean.BeanEndpoint.onProviderExchange(BeanEndpoint.java:235)
>>> at
>>> org.apache.servicemix.bean.BeanEndpoint.process(BeanEndpoint.java:211)
>>> at
>>>org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:538)
>>> at
>>>org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:490)
>>> at
>>>org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
>>> at
>>>org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610)
>>> at
>>>org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:170)
>>> at
>>>org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)
>>> at
>>>org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
>>> at
>>>java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
>>> at
>>>java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
>>> at java.lang.Thread.run(Thread.java:595)
>>> ]]>
>>> </error>
>>>
>>>
>>>
>>>And following exception appear on the console of servicemix:
>>>
>>>
>>>ERROR - BeanComponent - Error processing exchange InOut[
>>> id: ID:10.105.115.61-117c979d8b4-10:2
>>> status: Active
>>> role: provider
>>> service: {http://www.servicemix.org/example}httphandler
>>> endpoint: handlerEndpoint
>>> in: <?xml version="1.0" encoding="UTF-8"?><payload/>
>>>]
>>>javax.jbi.messaging.MessagingException: HandlerBean.onProviderExchange():
>>>The filename, directory name, or volume label syntax is incorrect
>>> at
>>>org.apache.servicemix.jbi.HandlerBean.onProviderExchange(HandlerBean.java:173)
>>> at
>>>org.apache.servicemix.jbi.HandlerBean.onMessageExchange(HandlerBean.java:56)
>>> at
>>>org.apache.servicemix.bean.BeanEndpoint.onProviderExchange(BeanEndpoint.java:235)
>>> at
>>>org.apache.servicemix.bean.BeanEndpoint.process(BeanEndpoint.java:211)
>>> at
>>>org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:538)
>>> at
>>>org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:490)
>>> at
>>>org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
>>> at
>>>org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610)
>>> at
>>>org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:170)
>>> at
>>>org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)
>>> at
>>>org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
>>> at
>>>java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
>>> at
>>>java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
>>> at java.lang.Thread.run(Thread.java:595)
>>>
>>>
>>>Please help me to solve this problem.
>>>
>>>Thanks,
>>>Puneet Jain
>>>
>>>
>>>--
>>>View this message in context:
>http://www.nabble.com/Problem-in-running-the-http-upload-application-tutorial-Example-tp15178224s12049p15178224.html
>>>Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>>
>>>
>>
>> = = = = = = = = = = = = = = = = = = = =
>>
>>
>> 致
>> 礼!
>>
>>
>> ---------------------------------------------------------
>> 程操红
>> 用友软件股份有限公司 集团平台技术开发部
>> Tel:62435466
>> Email:[EMAIL PROTECTED]
>> 地址:北京市海淀区北清路68号 用友软件园
>> 邮编:100085
>> ---------------------------------------------------------
>>
>>
>>
>
>--
>View this message in context:
>http://www.nabble.com/Problem-in-running-the-http-upload-application-tutorial-Example-tp15178224s12049p15199294.html
>Sent from the ServiceMix - User mailing list archive at Nabble.com.
= = = = = = = = = = = = = = = = = = = =
致
礼!
---------------------------------------------------------
程操红
用友软件股份有限公司 集团平台技术开发部
Tel:62435466
Email:[EMAIL PROTECTED]
地址:北京市海淀区北清路68号 用友软件园
邮编:100085
---------------------------------------------------------