xfire webservice实现附件上传

不再集成spring,只需ifire即可。

思路是把上传文件转换成流,然后通过传byte[]来实现附件的上传.
在附件上传之前,需要鉴权,
soap方式鉴权。

功能看附件代码,可直接运行。


部分代码:
服务端:
public UserInfo editNews(NewsInfo info, List<UploadFileInfo> fileList) {
if(fileList==null||fileList.size()<1){

}else{
for(UploadFileInfo uploadFileInfo:fileList){
// 这里调用文件处理类来保存文件
FileUtil.byteToFile(uploadFileInfo.getBytes(), "D:/log", uploadFileInfo.getFileName());
}

}

System.out.println(""+info.getNewsTitle());
System.out.println(""+info.getNewsUrl());
System.out.println(""+info.getNewsText());


UserInfo u = new UserInfo();
u.setName(info.getNewsTitle()+","+info.getNewsUrl());
u.setNum(222);
return u;

}


//
客户端代码:

public void uploadFile() throws IOException{
String url="http://localhost:8080/x1/services/HelloWord";


Service serviceModel = new ObjectServiceFactory().create(HelloWorldS.class);
HelloWorldS service = (HelloWorldS) new XFireProxyFactory().create(serviceModel,url);
XFireProxy proxy = (XFireProxy)Proxy.getInvocationHandler(service);
Client client = proxy.getClient();
client.addOutHandler(new ClientAuthenticationHandler("abcd","1234"));//鉴权用户名和密码

List<UploadFileInfo> fileList = new ArrayList<UploadFileInfo>();
File file = new File("D:/my");
File[] files = file.listFiles();
for(File f:files){
if(f.isFile()){
byte[] bytes =FileUtil.getBytesFromFile(f);
UploadFileInfo uplpadFileInfo = new UploadFileInfo();
uplpadFileInfo.setBytes(bytes);
uplpadFileInfo.setFileName(f.getName());
fileList.add(uplpadFileInfo);
}
}

NewsInfo newsInfo = new NewsInfo();
newsInfo.setNewsTitle("newsTitle");
newsInfo.setNewsUrl("newsUrl");
newsInfo.setNewsText("newsText");


UserInfo userInfo = service.editNews(newsInfo, fileList);

System.out.print(userInfo.getName()+","+userInfo.getNum());


}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值