java datahandler_Java Web Services:使用DataHandler类发送文件
我是
Java Web Services的新手,所以我可能做錯了.
我正在嘗試使用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 – 是否無法從Web服務返回此對象?
最佳答案 如果返回的DataHandler為null,我猜這個方法會出錯(例如你正在捕獲的MalformedURLException).如果沒有,您可以嘗試以不同的方式創建DataHandler,例如使用FileDataSource或ByteArrayDataSource.
總結
以上是生活随笔為你收集整理的java datahandler_Java Web Services:使用DataHandler类发送文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小户型装修多少钱啊?
- 下一篇: 杨过为什么管小龙女叫姑姑呢?为什么不叫姐