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