Как получить контроль над JAXBContext в JAX-WS?

Мне нужно развернуть один и тот же веб-сервис для каждого клиента. Этот @javax.jws.WebService использует Object в качестве аргументов метода и типов возврата (получается в wsdl). Каждый экземпляр веб-сервиса развертывается вместе с клиентским jar в classpath. Этот jar имеет известную структуру и содержит JAXB-аннотированные классы, которые клиент хочет обработать через мой сервис.

Проблема в том, что когда клиент передает экземпляр своего класса в качестве агрумента метода, серверный JAXB контекст разворачивает его в какой-то странный xerces dom узел, потому что (как я понимаю) во время развертывания были отсканированы только @WebMethod и @WebService аннотации, которые, как уже было сказано, имеют дело только с Object.

Проще говоря, мне нужно намекнуть JAXB на WEB-INF/lib/customer_classes_14586.jar, что означает взять под контроль создание JAXBContext во время развертывания JAX-WS.

Возможно ли это вообще?

Решения для конкретного сервера подходят (glassfish 3.1 с metro ws stack)

UPDATE

Я упустил одну вещь, которая может быть важна: я развертываю эти веб-сервисы как OSGI bundles во время выполнения через консоль веб-администратора. Когда я нажимаю кнопку deploy, новый jar программно собирается из библиотеки клиента, класса веб-сервиса, wsdl и манифестов. Поэтому я могу вмешаться в процесс сборки и предоставить подсказку в этот момент, если это поможет.

6
задан mispointer 5 September 2011 в 07:53
поделиться