簡體   English   中英

JAX-WS RI無法更改charset = utf-8

[英]JAX-WS RI cannot change charset=utf-8

我使用的是JAX-WS RI,其文件由Netbeans通過File> Web Service自動進行了整理,然后輸入WSDL。

我遇到的問題是JAX-WS RI總是將此標頭附加到請求:

Content-Type: application/soap+xml; charset=utf-8;action="urn:getOrganization"

但是,我們的Web服務器不接受charset=utf-8 ,它需要charset=UTF-8

如何使用JAX-WS RI更改此設置?
如果無法做到這一點,那么還有其他可用選項最終導致發送charset=UTF-8嗎?

也許處理程序可以解決問題?

public class EnforceUppercaseUtf8MessageHandler implements SOAPHandler<SOAPMessageContext> {

@Override
public boolean handleMessage(SOAPMessageContext context) {
    Boolean outbound = (Boolean) context.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);
    if (outbound.booleanValue()) {
        try {
            context.getMessage().setProperty(SOAPMessage.CHARACTER_SET_ENCODING,
                            "UTF-8");
        }
        catch (SOAPException e) {
            throw new RuntimeException(e);
        }
    }
    return true;
}

並注冊處理程序:

    BindingProvider bindProv = (BindingProvider) service;
    List<Handler> handlerChain = bindProv.getBinding().getHandlerChain();
    handlerChain.add(new EnforceUppercaseUtfMessageHandler ());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM