Как дать автоматически сгенерированным SOAP-запросам веб-сервиса один и тот же интерфейс?

1

Я занимаюсь автогенерированием классов soap webservice с использованием CXF (wsdl2java).

Созданные нами мыльные методы исходят из тэгов xml, таких как:

<wsdl:message name="GetAvailabilityReq">
        <wsdl:part name="parameters" element="q1:GetAvailabilityReq"
            xmlns:q1="http://path.to./MyService" />
    </wsdl:message>

Сгенерированный веб-сервис будет иметь различные методы, такие как:

@WebService
public interface MyWebservice {
   @WebResult
   @WebMethod
   public AvailabilityRsp getAvailability(@WebParam AvailabilityReq req);

   @WebResult
   @WebMethod
   public BookingRsp getBooking(@WebParam BookingReq req);
}

Как я могу сгруппировать все Запросы в одном interface?

Например, AvailabilityReq implements BaseReq и BookingReq implements BaseReq? Или это могло бы быть extends.

Примечание. Все запросы не имеют общего интерфейса с предоставленным файлом wsdl, но я бы хотел, чтобы это сгенерировалось.

Я, вероятно, должен сказать jaxb/cxf об этом при автогенерации, но как?

Теги:
soap
web-services
jaxb
cxf

1 ответ

0
Лучший ответ

Решение заключается в предоставлении следующей информации в pom.xml:

            <dependency>
                    <groupId>org.jvnet.jaxb2_commons</groupId>
                    <artifactId>jaxb2-basics</artifactId>
                    <version>0.8.2</version>
            </dependency>

        <extraargs>
            <extraarg>-xjc-XautoInheritance</extraarg>
            <extraarg>-xjc-XautoInheritance-xmlRootElementsImplement=package.to.MyCommonInterface</extraarg>
        </extraargs>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню