2011-10-12 5 views
6

Tôi muốn tắt tính năng xác thực lược đồ cho các thư được gắn JAXB. Tôi đang xử lý mã CXF phía máy khách (WSDL thế hệ thứ nhất). Tôi đã thử sử dụngCXF 2.2.12: Cách tắt tính năng xác thực lược đồ ở phía máy khách

<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> 

Không thành công (xem tham chiếu CXF FAQ). Tôi đã gặp khó khăn khi tìm cách thiết lập thuộc tính này. Tôi cũng đã khám phá CXF ngắn mạch và truy cập trình phân tích cú pháp, trình gỡ lỗi, v.v.

Cảm ơn sự giúp đỡ của bạn.

+0

Đối với CXF 3 Tôi đã sử dụng thuộc tính này:

Trả lời

5

Để tắt xác thực giản đồ, bạn nên đặt thuộc tính schema-validation-enabled thành false.

Theo tài liệu được bạn giới thiệu (CXF FAQ).

Để kích hoạt xác nhận schema (tất cả các yêu cầu và trả lời sẽ được xác nhận chống lại schema) thiết

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

Để vô hiệu hóa xác nhận schema (không ai trong số các yêu cầu và cũng không trả lời sẽ được xác nhận chống lại schema) không làm gì cả vì nó là hành vi mặc định hoặc thiết lập

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

hoặc từ các mã như sau:

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);