我想用web services来传输文件,因为我传输的文件需要和具体业务数据联系一起,不然我就用FTP方式。有没有办法用web servies 来传输文件,同时我也知道文件流是不能序列化的,所有总是报如下错误信息。有谁遇见过axis 处理文件?
 - 调用web service 名字: test,方法名称: getFile
AxisFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
 faultSubcode: 
 faultString: org.xml.sax.SAXParseException: Premature end of file.
 faultActor: 
 faultNode: 
 faultDetail: 
{http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXParseException: Premature end of file.
at com.apusic.org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:236)
at com.apusic.org.apache.xerces.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:215)
at com.apusic.org.apache.xerces.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:384)
at com.apusic.org.apache.xerces.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:314)
at com.apusic.org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:230)
at com.apusic.org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:792)
at com.apusic.org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:758)
at com.apusic.org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:148)
at com.apusic.org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1178)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at client.TestClient1.main(TestClient1.java:44)

解决方案 »

  1.   

    用ftp或者socket伊数据流的方式传不行吗?
    没有用ws 穿过
      

  2.   

    ftp很容易被駭客入侵
    Socket當user多時會佔用許多port
    WS是不錯的選擇
      

  3.   

    在webservice中传递文件,使用字符串传递,客户端可以先读入文件,然后将文件流转化给base64编码,调用系统ws传入你的字符串,在ws中的方法将传入的字符串再写成文件。
      

  4.   

    在webservice中传递文件,使用字符串传递,客户端可以先读入文件,然后将文件流转化给base64编码,调用系统ws传入你的字符串,在ws中的方法将传入的字符串再写成文件。
      

  5.   

    http://www.docin.com/p-65343690.html
    第22页有说axis怎么传递文件