2015-12-21 3 views
2

Мне нужно отправить XML-файл из одного приложения Java в другое.Отправлять данные из одного приложения Java в другое

В настоящее время он работает так: - Экспорт в локальный XML-файл из приложения 1 - Импорт локального XML-файла в приложении 2

Теперь я должен сделать это с помощью веб-сервиса (ов). Возможно ли создать веб-службу JAX-WS в приложении 1, которая перенаправляет приложение 2 с необходимыми данными?

Я могу отправить данные (объект) в виде сериализованного объекта вместо XML-файла. Но возможно ли это? И если да, то как?

Оба приложения написаны в Eclipse-Scout.

Заранее спасибо.

ответ

0

webservice прост и полезен, если ваши два приложения работают на разных машинах.

Отправка сервер: использовать библиотеку для HTTP (пост или получить)

-только сохранить файл. просто используйте HTTP/POST. работает для текста двоичный

2 более простой: если ваши данные немного текста, вы можете использовать HTTP/GET (остерегайтесь специальных символов: вы можете кодировать их).

3 Если вы можете поместить все свои данные в одну структуру (объект), просто сериализуйте ее, поместите результат в строку и отправьте ее.

Получая сервер:

если вы используете Tomcat, расширить HttpServlet, и получить от doPost или doGet

Или вы можете использовать другой легкий HTTP сервер

или библиотека мыла (не очень нужно).

DOPOST/DOGET

Отправка сервера: HttpURLConnection Conn = (HttpURLConnection) url.openConnection(); // и т.д.

Получая сервер:

public class MyServlet extends HttpServlet { 
@Override 
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
String one_parameter = request.getParameter("name_of_parameter"); 

Смотрите эти ссылки для более подробного объяснения:

Java - sending HTTP parameters via POST method easily

doGet and doPost in Servlets

+0

Спасибо за этот ответ. Но у меня нет опыта работы с подобными вещами. Вы знаете пример, когда они отправляют сериализованный объект из одного приложения в другое с автоматическим перенаправлением на другое приложение? – Maarten

+0

Я нашел сообщение, где кто-то делает именно то, что я хочу делать. Но он не объясняет, как он отправляет объект в другое приложение: http://stackoverflow.com/questions/13584646/transferring-a-java-class-between-applications-via-serialization – Maarten

+0

Я поместил некоторые ссылки в свою ответ. удачи ! –

0

(немного долго для комментария)

Вы можете захотеть остаться путь от раздутых вещей, таких как JAX-WS, и просто использовать стандартный сервлет и JAXB или XStream для дезактивации/сериализации.

Кроме того, никогда не используйте десериализацию Java (двоичную) или по умолчанию XStream на неаутентифицированных входах/транспорте (например, HTTP или ненадежных клиентах даже с HTTPS). Это всегда приводит к эксплойтам удаленного выполнения кода, которые не могут быть перенесены без повторной разработки вашего интерфейса webservice. Самые последние instance ...

Смежные вопросы