gpt4 book ai didi

Java Web 服务 : sending files using DataHandler class

转载 作者:搜寻专家 更新时间:2023-11-01 03:30:24 25 4
gpt4 key购买 nike

我是 Java Web 服务的新手,所以我可能做错了。

我正在尝试使用 DataHandler 传输文件 - 这就是我得到的:

网络服务:

import java.net.MalformedURLException;
import java.net.URL;
import javax.activation.DataHandler;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.xml.bind.annotation.XmlMimeType;

/**
*
* @author pc1
*/
@WebService()
public class WSFileSender {

@WebMethod( operationName = "getfile" )
public @XmlMimeType( "application/octet-stream" ) DataHandler getfile( @WebParam( name = "path" ) String path ) {

DataHandler datahandler = null;

try {
datahandler = new DataHandler( new URL( path ) );
}
catch ( MalformedURLException e ) {
System.out.println( "Bad" );
}

return datahandler;
}

}

客户:

package fileclient;

import java.io.FileOutputStream;
import java.io.OutputStream;
import javax.activation.DataHandler;

/**
*
* @author pc1
*/
public class Main {

/**
* @param args the command line arguments
*/
public static void main( String[] args ) {

try {
fspg.WSFileSenderService service = new fspg.WSFileSenderService();
fspg.WSFileSender port = service.getWSFileSenderPort();

DataHandler handler = port.getfile( "FileSender/file.jpg" );

OutputStream out = new FileOutputStream( "dest.jpg" );

handler.writeTo( out );

out.close();

System.out.println( "Done" );

} catch (Exception ex) {
// TODO handle custom exceptions here
}

}

}

看起来好像一切都正确完成了,但是创建的文件是空的——我做错了什么?

================= 编辑 ==================

getfile() 返回的 DataHandler 对象为 null - 是否无法从网络服务返回此对象?

最佳答案

如果 DataHandler 返回的是 null,我猜测该方法可能出了问题(例如,您正在捕获的 MalformedURLException)。如果没有,您可以尝试以不同的方式创建 DataHandler,例如使用 FileDataSourceByteArrayDataSource

关于Java Web 服务 : sending files using DataHandler class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1686450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com