Служба загрузки файлов Java WS
В настоящее время я работаю над проектом Java Web Service. Он развернут на сервере Apache Tomcat 7, и мне нужно предоставить сервис для загрузки файлов на сервер. Кроме того, веб-сервис должен быть доступен для систем, которые могут не использовать Java. Таким образом, мне нужно сделать мой веб-сервис универсально доступным для всех клиентов (например, C#, php и т. Д.). После просмотра веб-страниц я нашел много решений, но ни одно из них не объясняет, как мне выполнить вышеупомянутые критерии. Чтобы быть более конкретным, я натолкнулся на аннотации MTOM и Java WS, ссылки на которые необходимы для определения общепринятых структур данных, таких как Java DataHandler. Позвольте мне опубликовать пример кода моего веб-сервиса:
public class DataFileServer extends AbstractFileServer {
private int _buffer_size;
public DataFileServer() {
_buffer_size = 100000;
}
public DataFileServer(int bufferSize) {
_buffer_size = bufferSize;
}
@Override
public void uploadFile(String AbsoluteFilePath, FileObject FileInfo) {
DataHandler _handler = FileInfo.getHandler();
try {
InputStream is = _handler.getInputStream();
OutputStream os = new FileOutputStream(new File(AbsoluteFilePath +
"/" + FileInfo.getName() + "." +
FileInfo.getType()));
byte[] b = new byte[_buffer_size];
int bytesRead = 0;
while((bytesRead = is.read()) != -1) {
os.write(b, 0, bytesRead);
}
}catch(IOException e) {
e.printStackTrace();
}
}
}
DataFileServer - это класс, который будет выполнять операцию загрузки, а интерфейс веб-службы будет следующим:
@WebService()
public class ETL_WS {
private DataHandler _handler;
private String server_dir = "/home/user/Desktop/FileServer";
public int fileUpload(String FileName, DataHandler CsvFile) {
FileObject _file = new FileObject(FileName, CsvFile);
_handler.uploadFile(this.server_dir, _file);
return 0;
}
}
Мой вопрос заключается в том, как я могу убедиться, что объект DataHandler, предоставленный моему веб-сервису, будет иметь правильный тип. Кроме того, могу ли я каким-либо образом улучшить безопасность и производительность операции загрузки файлов?
Спасибо