2016-04-15 12 views
0

Content-Type: "application/soap + msbin1"を使用するWebサービスで作業していますが、 "Bad Request "wsの応答についてJAX-WSクライアントでmsbin1のエンコード/デコード

public class pruebaWS { 
public static void main(String[] args) { 


    JaxWsProxyFactoryBean proxyFactory = new JaxWsProxyFactoryBean(); 
    proxyFactory.setServiceClass(IMercadosCanalService.class); 
    proxyFactory.setAddress("http://webbmgdesa2.rio.ar.bsch:5670/MercadosCanalService.svc"); 
    IMercadosCanalService port = (IMercadosCanalService) proxyFactory.create(); 
    Client client = ClientProxy.getClient(port); 

    HTTPConduit httpConduit = (HTTPConduit) client.getConduit(); 
    HTTPClientPolicy policy = new HTTPClientPolicy(); 
    policy.setContentType("application/soap+msbin1"); 
    httpConduit.setClient(policy); 
    try { 
     port.consultaDeOrdenes(new ConsultaOrdenCanalRequest()); 
    } catch (IMercadosCanalServiceConsultaDeOrdenesMercadosServiceFaultFaultFaultMessage e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

} 

私はそれを送信する前にどのように要求をエンコードするためのアイデア?

Throwable occurred: org.apache.cxf.interceptor.Fault: Response was of unexpected text/html ContentType. Incoming portion of HTML stream: Bad Request 
at org.apache.cxf.interceptor.StaxInInterceptor.handleMessage(StaxInInterceptor.java:73) 
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:236) 
at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:664) 
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2160) 
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:2040) 
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1965) 
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66) 
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:627) 
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62) 
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:236) 
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:478) 
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:308) 
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:260) 
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73) 
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124) 
at $Proxy60.consultaDeOrdenes(Unknown Source) 
at com.rio.common.wsERI.pruebaWS.main(pruebaWS.java:35) 

答えて

0

このコンテンツタイプの使用は必須要件ですか。 soap + xmlに切り替えることができますか?より多くの文書化された標準を使用する方が簡単です。

とにかく、私はこのプラグインを使用すると、エンコードのためにあなたの要求を使用するように試みることができることがわかりました:https://github.com/GDSSecurity/WCF-Binary-SOAP-Plug-In

+0

ありません私は、サーバーの一部にアクセスすることができません。はい、私はそのプラグインを見ましたが、私は例を見つけることができません..私はそれを、どのように使用するかわからない? –

関連する問題