加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

第六课 jaxws-webservice编程

发布时间:2020-12-17 00:31:24 所属栏目:安全 来源:网络整理
导读:一、前言 ??? 第四课和第五课了解了从服务器端下载二进制文件,但是没有涉及如何利用webservice进行文件的上传,第六课主要解决这个问题。 二、目标 ??? 了解利用jaxws进行文件的上传。 三、编写Server端 1、制作Service端接口 package com.guole.webservice

一、前言

??? 第四课和第五课了解了从服务器端下载二进制文件,但是没有涉及如何利用webservice进行文件的上传,第六课主要解决这个问题。


二、目标

??? 了解利用jaxws进行文件的上传。


三、编写Server端

1、制作Service端接口

package com.guole.webservice.ws;

import javax.activation.DataHandler;
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.xml.ws.soap.MTOM;

@WebService
@SOAPBinding(style = SOAPBinding.Style.RPC)
@MTOM
public interface FileService {
?? ?@WebMethod
?? ?public DataHandler downloadFile(String fileName);
}

2、实现Service的接口

package com.guole.webservice.ws;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.jws.WebService;

@WebService(serviceName = "FileServiceImpl",portName = "FileServiceImplPort",targetNamespace = "http://ws.webservice.guole.com/",endpointInterface = "com.guole.webservice.ws.FileService")
public class FileServiceImpl implements FileService {

?? ?public DataHandler downloadFile(String fileName) {
?? ??? ?// TODO Auto-generated method stub
?? ??? ?FileDataSource dataSource = new FileDataSource("d:/" + fileName);
?? ??? ?DataHandler fileDataHandler = new DataHandler(dataSource);
?? ??? ?return fileDataHandler;
?? ?}

}

3、web.xml

<servlet>
?? ??? ?<servlet-name>FileService</servlet-name>
?? ??? ?<servlet-class>
?? ??? ??? ?com.sun.xml.ws.transport.http.servlet.WSServlet
?? ??? ?</servlet-class>
?? ??? ?<load-on-startup>2</load-on-startup>
?? ?</servlet>

?? ?<servlet-mapping>
?? ??? ?<servlet-name>FileService</servlet-name>
?? ??? ?<url-pattern>/FileService</url-pattern>
?? ?</servlet-mapping>

4、sun-jaxws.xml

<endpoint name='FileService'
?? ??? ?implementation='com.guole.webservice.ws.FileServiceImpl'
?? ??? ?url-pattern='/FileService' />
5、发布程序就可以


、编写客户端

1、使用wsiport -keep http://127.0.0.1:8282/jws/FileService?wsdl 生成源码,放入src目录中

2、写测试类

public class TestCase { public static void main(String[] param) { // http://127.0.0.1:8282/jws/FileService?wsdl FileServiceImpl service = new FileServiceImpl(); FileService port = service.getFileServiceImplPort(); byte[] dh = port.downloadFile("carrier.jpg"); /*Location for downloading and storing in client’s machine*/ try { FileOutputStream outputStream = new FileOutputStream("d:/1.jpg"); outputStream.write(dh); outputStream.flush(); System.out.println(" Download Successful!"); } catch (Exception e) { // TODO: handle exception } } }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读