Я определяю класс, и затем я утверждаю объект того типа класса. Я хочу отправить этот объект в другое JAVA-приложение, работающее на другом компьютере прозрачно. Что лучшая технология должна выполнить это?
вы можете создавать потоки объектов с помощью java API и отправлять любые сериализуемые объекты. но вы должны помнить, что они проходят через сеть в незашифрованном виде:
на стороне отправителя:
CustomObject objectToSend=new CustomObject();
Socket s = new Socket("yourhostname", 1234);
ObjectOutputStream out = new ObjectOutputStream(s.getOutputStream());
out.writeObject(objectToSend);
out.flush();
и на принимающей стороне:
ServerSocket server = new ServerSocket(1234);
Socket s = server.accept();
ObjectInputStream in = new ObjectInputStream(s.getInputStream());
CustomObject objectReceived = (CustomObject) in.readObject();
Вы захотите начать с изучения сериализации с помощью интерфейса Java Serializable . У Sun есть хорошая статья по этому поводу под названием Откройте для себя секреты Java Serialization API .
Обратитесь к руководству по сокетам Java для получения информации о фактической передаче сериализованного объекта по сети.
Есть много способов сделать это. Вот несколько вещей, на которые стоит обратить внимание, и вы можете выбрать тот, который лучше всего подходит для вашего приложения.
Практически любой Коммуникационная структура позволит вам тем или иным образом перемещать объекты по сети. Вам просто нужно просмотреть их и посмотреть, что подходит для вашего приложения. Быстрый поиск в Google поможет найти еще больше методов.
Стандарт (де-факто) для реализации этого будет заключаться в использовании веб-службы , например, с использованием JAX-WS , который входит в состав Java. 6. См. в этом руководстве пример java-first (т.е. с использованием аннотаций). Это довольно просто и просто.
Существуют и другие подходы, такие как Сериализация
через Socket , RMI, EJB, но при работе через Интернет веб-службы являются своего рода естественный выбор, поскольку они полагаются на существующие стандарты (SOAP, HTTP) и легко справляются с межсетевыми экранами (что может быть реальной проблемой для всех других решений).