2009-08-30 30 views
6

Tôi đã cố gắng tiêu thụ một dịch vụ lưu trữ WCF .net bằng cách sử dụng JAX-WS gần đây. Do tính bảo mật của dịch vụ, tôi phải đặt ủy quyền tiêu đề HTTP tùy chỉnh với một số chữ ký trong đó. Này tôi đã giải quyết bằng cách làm một cái gì đó như thế này:jax-ws: đặt Content-Type of request

BindingProvider bp = (BindingProvider) port; 
bp.getRequestContext().put(MessageContext.HTTP_REQUEST_HEADERS, 
           Collections.singletonMap("Authorization",Collections.singletonList(authHeader))); 

Tuy nhiên, tôi nhận được một ngoại lệ khi gọi dịch vụ:

com.sun.xml.internal.ws.server.UnsupportedMediaException: Unsupported Content-Type: text/html; charset=UTF-8 Supported ones are: [text/xml] 
com.sun.xml.internal.ws.encoding.StreamSOAPCodec.decode(StreamSOAPCodec.java:284) 
com.sun.xml.internal.ws.encoding.StreamSOAPCodec.decode(StreamSOAPCodec.java:118) 
com.sun.xml.internal.ws.encoding.SOAPBindingCodec.decode(SOAPBindingCodec.java:278) 
com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:180) 
com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:83) 
com.sun.xml.internal.ws.transport.DeferredTransportPipe.processRequest(DeferredTransportPipe.java:105) 

Và có vẻ như với tôi rằng có thể có một yêu cầu cho yêu cầu của tôi trong dịch vụ là loại nội dung văn bản/xml. Làm thế nào để tôi thiết lập điều này? Tôi đã googled rất nhiều, và đọc một số tài liệu nhưng tôi dường như không thể tìm ra nó. Tất nhiên ngoại lệ cũng có thể khác với cài đặt Loại nội dung (vì tôi đã đọc theo mặc định jax-ws sử dụng văn bản/xml) nhưng tôi không chắc chắn.

Cảm ơn trước!

Trả lời

8

Bạn đang nhận được loại nội dung văn bản/html trở lại làm phản hồi.

Hầu hết thời gian tôi gặp lỗi này, máy chủ đang gửi trang lỗi html.

Nếu bạn có cách để ghi lại phản hồi, bạn sẽ có thể thấy chính xác vấn đề là gì.

+0

Cảm ơn bạn đã trả lời - vì vậy bạn cho rằng yêu cầu đã thực sự chuyển sang wbservice và tôi có thể quay lại có thể là thông báo lỗi dưới dạng html? Điều này có thể thực sự ... –