2013-04-29 1 views
1

Я вхожу в веб-проект, который нуждается в некоторой инфраструктуре, что-то, в чем я не очень-то понимаю, поэтому я прошу совета вашего мудреца :).Как отправить сущности сокета на Java

Проект использует пружину для MVC и имеет соединение с другим проектом, называемым трекером, выполненным сокетами.

Дело в том, что мне нужно создать объект объекта и объект под названием task by web, и этот объект должен быть отправлен на трекер, где будет обработан, одна из первых идей отправляла сущность сериализована, но не кажется действительно хорошо, потому что внутри этого объекта есть много других, которые не нужны трекеру. Также трекер должен отправить обратную связь о реализации задачи.

Я читал, что создание файла JSON с данными, которые мне нужны из задачи сущности и отправка их на трекер, обычно хорошая идея, но я просто хотел быть уверенным и знать, есть ли другие возможности.

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

+0

Заканчивать [Нетти] (http://netty.io/) – durron597

ответ

2

Есть много возможностей. Я думаю, что JSON - отличный вариант для XML.

Для JSON вы можете использовать Google Gson (https://code.google.com/p/google-gson/) - очень полезная и простая библиотека, конвертирующая JSON-JAVA и наоборот.

Сериализация объектов Java - еще одна возможность. Для отправки объекта Java через сокет вы могли бы сделать:

URL urlServlet = new URL("http://..."); 
    URLConnection connection = urlServlet.openConnection(); 

    connection.setDoInput(true); 
    connection.setDoOutput(true); 
    connection.setUseCaches(false); 

    connection.setRequestProperty("Content-Length", 
    "512"); 
    connection.setRequestProperty("Content-Type", 
    "application/x-java-serialized-object"); 

    ObjectOutputStream output = new ObjectOutputStream(connection.getOutputStream()); 
    output.writeObject(getOrdenesDTO()); 
+0

Спасибо, я думаю, что я дам JSon попробовать, просто потому, что это хороший вариант, если когда-нибудь я хочу изменить язык проекта, отправляющего данные. – KBorja

+0

Несомненно, если вы используете JSON, ваш проект получает интероперабельность. – Gere

2

Есть много возможностей: например, JSON и XML, но сериализация является самой простой. Вместо создания файла JSON или с использованием существующего объекта вы можете создать новый, простой Java-компонент, содержащий только ту информацию, которая вам действительно нужна, и отправить ее.

Конечно, я предполагаю, что приложение «traker» будет разработано соответствующим образом.

0

По-моему, использование JSON вместо сериализации проще реализовать, однако каждый член поля должен быть преобразован в строку и обратно.

Вы можете отметить поле, которое вы не хотите сериализовать с помощью ключевого слова transient.

Другой вариант - это, конечно, более сложный протокол сокетов для вашего собственного сокета.