DataHandler传文件报NotSerializableException,求指点

问题描述

小弟做一个webservice接口,涉及到文件的传输。用ECLIPSE生成了客户端,然后在项目里面调用接口我的代码大致是:try{DataHandlerdatahandler=newDataHandler(newFileDataSource("D:\test.xlsx"));ChannelWebServiceProxychannel=newChannelWebServiceProxy();channel.setEndpoint(endpoint);ChannelWebServiceSoapBindingStubstub=(ChannelWebServiceSoapBindingStub)channel.getChannelWebService();//附件AttachFileattachFile=newAttachFile();attachFile.setDataHander(datahandler);attachFile.setFileName("D:\test.xlsx");//调用接口PartnerContractSynRequestcontRequest=newPartnerContractSynRequest(attachFile,"test","1","TEST_001","2013-12-12","123","2013-12-12","admin","2013-12-12","2013-12-12");PartnerContractSynResponsecontResponse=stub.partnerContractSyn(contRequest);if(contResponse.getResult().equals("0"))message="success";elsemessage=contResponse.getMessage();}catch(Exceptione){System.out.println(e);message="接口异常,请联系管理员";}System.out.println(message);调用这个接口的时候,每次都反馈一个异常:java.io.NotSerializableException:javax.activation.DataHandler。。这个异常是对方系统反馈回来的。但我自己建了一个测试服务,用类似的方式传文件是可以的。因此,有些怀疑是不是对方系统自己的错误。麻烦大家帮我看看。

解决方案

解决方案二:
序列化和反序列化的问题,对方调用你的接口,但对象输出流的对象所对应的类还没有实现Serializable接口口,反序列化失败异常,楼主检查下自已的接口里面的实体bean看有没有都实现Serializable接口。
解决方案三:
引用1楼a_liujian的回复:

序列化和反序列化的问题,对方调用你的接口,但对象输出流的对象所对应的类还没有实现Serializable接口口,反序列化失败异常,楼主检查下自已的接口里面的实体bean看有没有都实现Serializable接口。

您好。你指的是服务端的问题吧。我调用客户端代码是不是不需要对datahandler做序列化操作呢?
解决方案四:
看样子应该是版本不对啊。
解决方案五:
webservice接口只能传字符串类型的,你传个对象当然会报错。attachFile你可以把文件的所在的FTP地址传过去,之后接口那边从FTP上下载文件。
解决方案六:
你要是把AttachFile这个类序列化一下,接口那边反序列化一下估计也能得到这个对象。没用过,你可以试试。

时间: 2024-09-21 08:38:50

DataHandler传文件报NotSerializableException,求指点的相关文章

upload-求大神解答ssh上传文件报NullPointerException

问题描述 求大神解答ssh上传文件报NullPointerException 页面代码: Action: public String uplo() throws Exception{ String root=ServletActionContext.getServletContext().getRealPath(this.getSavePath()); System.out.println(root); FileInputStream in=new FileInputStream(upload)

springmvc-springMVC上传文件报错

问题描述 springMVC上传文件报错 09:13:59,716 ERROR [RequestUtils] Caught error while decoding priorityId. org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; nested exception is org.apache.commons.fileupload.FileUplo

spring mvc-关于Spring mvc 向服务器上传文件报错问题

问题描述 关于Spring mvc 向服务器上传文件报错问题 Spring mvc在向服务器上传的文件的时候报错 显示系统找不到指定的路径,应该要怎么修改 解决方案 大文件上传到服务器报错的问题大文件上传到服务器报错的问题ASP.NET 上传Excel到服务器报错的问题 解决方案二: 错误粘出来看看,可能原因有很多 解决方案三: 代码是这个 @RequestMapping("/updateExcel") public String updateExcel(HttpServletRequ

get-winform使用webclient上传文件报错,是怎么回事???具体如下

问题描述 winform使用webclient上传文件报错,是怎么回事???具体如下 到底是怎么回事??附上服务端代码 protected void Page_Load(object sender, EventArgs e) { // 在此处放置用户代码以初始化页面 foreach (string f in Request.Files.AllKeys) { string hx=Request.QueryString ["picname"]; HttpPostedFile file =

java-ofbiz首次导入eclipse文件报错,求大神指导下

问题描述 ofbiz首次导入eclipse文件报错,求大神指导下 都是 .getServletContext().getContextPath()); 这一句报错,是什么原因呢?如何解决? 解决方案 这个是JDK版本问题,不用管. 解决方案二: http://blog.csdn.net/jeff06143132/article/details/18814989 这里有介绍 groovy的问题

java 执行 sql 文件报错 求大神帮忙解决 急急急!!!!

问题描述 java 执行 sql 文件报错 求大神帮忙解决 急急急!!!! sql文件里边的内容 /* Navicat MySQL Data Transfer Source Server : localhost_3306 Source Server Version : 50096 Source Host : localhost:3306 Source Database : cemscenter1 Target Server Type : MYSQL Target Server Version :

三个思路解决laravel上传文件报错:413 Request Entity Too Large问题

最近一个项目当中,要求上传图片,并且限制图片大小,虽然在laravel当中已经添加了相关的表单验证来阻止文件过大的上传,然而当提交表单时,还没轮到laravel处理,nginx就先报错了.当你仔细看报错页面时,你会发现有nginx版本信息,经过分析,这报错是因为nginx的默认上传文件大小配置client_max_body_size只有2MB, 基于nginx验证比laravel验证要早,想要友好报错而不是直接显示413 Request Entity Too Large,那么就有三个思路去解决.

HipChat上传文件报未知错误的原因分析及解决方案_nginx

HipChat的功能类似于Campfire.Sazneo等在线协同工具,并且和Yammer以及Salesforce的Chatter等企业社交平台有一定相似之处.你可以为单个项目或者小组搭建自有的聊天室,也可以很方便的发起一对一聊天.这套 IM 系统还整合了团队文件管理和分享,拖拽就能完成保存操作. 前言 HipChat是Atlassian公司的一款团队协作即时通讯工具,服务端为Linux(官方给的服务端就是一个虚拟机),在Windows.Linux.Android.IOS.Mac等平台都有客户端

Spring MVC实现上传文件报错解决方案

报错代码: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.web.multipart.MultipartFile]: Specified class is an interface org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:101) o