CXF 2.2.12: как отключить проверку схемы на стороне клиента - PullRequest
9 голосов
/ 12 октября 2011

Я хотел бы отключить проверку схемы для сообщений, связанных с JAXB. Я имею дело с CXF-кодом на стороне клиента (WSDL первого поколения). Я пытался использовать

<jaxws:client name="{http://apache.org/hello_world_soap_http}SoapPort"
    createdFromAPI="true">
    <jaxws:properties>
        <entry key="schema-validation-enabled" value="true" />
    </jaxws:properties>
</jaxws:client>

Без успеха (см. Ссылку CXF FAQ ). Мне было трудно найти программный способ настройки этого свойства. Я также исследовал короткое замыкание CXF и доступ к парсеру, демаршаллеру и т. Д.

Спасибо за вашу помощь.

Ответы [ 3 ]

6 голосов
/ 12 декабря 2012

Чтобы отключить проверку схемы, необходимо установить для свойства schema-validation-enabled значение false.

Согласно указанной вами документации ( CXF FAQ ).

Чтобы включить проверку схемы (все запросы и ответы будут проверены по схеме), установите

<entry key="schema-validation-enabled" value="true" />

Чтобы отключить проверку схемы (ни один из запросов или ответов не будет проверен по схеме), ничего не делайте, потому что это поведение по умолчанию или установлено

<entry key="schema-validation-enabled" value="false" />
1 голос
/ 26 января 2016

Или из кода следующим образом:

    Client client = ClientProxy.getClient(XYZSOAPEndPoint);
    HTTPConduit http = (HTTPConduit) client.getConduit();
    HTTPClientPolicy policy = new HTTPClientPolicy();
    policy.setAllowChunking(false);
    http.setClient(policy);
    ((BindingProvider)XYZSOAPEndPoint).getRequestContext().put("schema-validation-enabled",true);
0 голосов
/ 31 мая 2019

@SchemaValidation(type = SchemaValidation.SchemaValidationType.NONE) поместите эту аннотацию в класс реализации вашей конечной точки

...