- Нужно ли иметь этот класс в обоих проектах? Да.
- Должен ли я сначала сериализовать объект? Нет.
- Должен ли я использовать JAXB, если да, с чего начать? Я не стал бы. Я предпочитаю интерфейсы javax.oxm, потому что мне нет дела до JAXB, но это личное мнение.
Мое личное предпочтение - использовать Spring web service s. Если вы оказались пользователем Spring, я думаю, что это лучший путь. Если нет, возможно, документы все равно помогут уточнить.
Вы испытываете причину, по которой мне не нравится ваш подход: и сервис, и клиент, и вы зависите от класса и кода OXM. Вы должны иметь это в обоих местах, в идеальной синхронизации. Измените один, и вы должны изменить оба.
Я стараюсь минимизировать зависимости, если могу.
И в этом случае вы можете, если отправляете XML туда и обратно. Начните со схемы XSD. Пусть клиент и служба справляются с этим вместо объектов Java. Ваш сервис будет пригоден для клиентов, которые не поддерживают Java.
Если вы воспользуетесь этим подходом, вам придется беспокоиться только об ОХМ на стороне сервера. Вы берете XML-запрос и размещаете его в выбранном вами Java-объекте и передаете на уровень обслуживания (примечание: НЕ уровень веб-службы) для обработки. Превратите объект ответа в поток ответов XML, и Боб станет вашим дядей. Пусть клиент справится с этим.