私はすべてのgoogle、stackoverflowなどを通じてこの問題を探し求めてきました。 それに関連する多くの回答が見つかりましたが、実際の解決策ではありません。.NETからJava/AXIS Webサービスを呼び出す: 'return null'の問題
.NETクライアントからAxisサービスを消費していますが、返されるパラメータは常にnullです。送信するパラメータに関係なく、常にnullです。
私は見始めて、それを SOAPUIから消費しようとしました。
私の最初の考えは、.NETが何か間違っていて、検索して検索したところ、名前空間にいくつかの問題があることがわかりました。ポスト here
関連
だから、この後、私は(これはかなりよく作成されました!)WSDL.EXEとプロキシを作成し、サービス参照、Web参照を介したサービスを消費しようとしたすべての名前空間を探しましたしかし、すべてが良いlokked ..私は名前空間にそれにいくつかの変更を加えたが、何もしなかった。
次に、ネームスペースだけでなく、配列も問題であることがわかりました。実際にはこのようなサービスを返します。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<InformacionPolizaResponse xmlns="http://www.openuri.org/">
<ns1:Poliza xmlns:ns1="http://www.example.org/PolizasBanorteSchema">
<ns1:Numero>0036887</ns1:Numero>
<ns1:Serie></ns1:Serie>
<ns1:Ramo>00110</ns1:Ramo>
<ns1:Subramo>00110</ns1:Subramo>
<ns1:Inciso></ns1:Inciso>
<ns1:ClaveAgente>000270</ns1:ClaveAgente>
<ns1:NombreAgente>NOMBRE PENDIENTE</ns1:NombreAgente>
<ns1:NumeroOficina></ns1:NumeroOficina>
<ns1:FechaEmision>2011-02-15</ns1:FechaEmision>
<ns1:FechaInicioVigencia>2011-02-15</ns1:FechaInicioVigencia>
<ns1:FechaFinVigencia>2012-02-15</ns1:FechaFinVigencia>
<ns1:Estatus>03</ns1:Estatus>
<ns1:NombreContratante>CARLOS ZARATE JIMENEZ</ns1:NombreContratante>
<ns1:RfcContratante>ZAJC720213K98</ns1:RfcContratante>
<ns1:Telefono>0449626251463</ns1:Telefono>
<ns1:Moneda>1</ns1:Moneda>
<ns1:FormaPago>003</ns1:FormaPago>
<ns1:PrimaPrimerPago>237.84</ns1:PrimaPrimerPago>
<ns1:PrimaPagoSubsecuente>237.84</ns1:PrimaPagoSubsecuente>
<ns1:PrimaNeta>951.36</ns1:PrimaNeta>
<ns1:FinancPagofraccionado></ns1:FinancPagofraccionado>
<ns1:GastosExpedicion>.00</ns1:GastosExpedicion>
<ns1:IVA></ns1:IVA>
<ns1:PrimaTotal></ns1:PrimaTotal>
<ns1:PolizaOrigen>0036887</ns1:PolizaOrigen>
<ns1:PolizaRenueva>0000000</ns1:PolizaRenueva>
<ns1:Producto></ns1:Producto>
<ns1:Plan></ns1:Plan>
<ns1:Asegurados>
<ns1:item>
<ns1:Nombre>CARLOS ZARATE JIMENEZ</ns1:Nombre>
<ns1:Clave></ns1:Clave>
<ns1:Direccion>
<ns1:Calle></ns1:Calle>
<ns1:Colonia></ns1:Colonia>
<ns1:Poblacion></ns1:Poblacion>
<ns1:Estado></ns1:Estado>
<ns1:CP></ns1:CP>
<ns1:Texto></ns1:Texto>
</ns1:Direccion>
<ns1:FechaNacimiento>1972-02-13</ns1:FechaNacimiento>
<ns1:Sexo>1</ns1:Sexo>
<ns1:Fumador>1</ns1:Fumador>
<ns1:Parentesco>0</ns1:Parentesco>
<ns1:AntiguedadDesde></ns1:AntiguedadDesde>
<ns1:Coberturas>
<ns1:item>
<ns1:Clave>00150</ns1:Clave>
<ns1:Seccion></ns1:Seccion>
<ns1:NombreCobertura>SEGURO DE MUERTE ACCIDENTAL</ns1:NombreCobertura>
<ns1:LimiteMaximo>250,000</ns1:LimiteMaximo>
<ns1:Deducible>.00</ns1:Deducible>
<ns1:Prima>820.00</ns1:Prima>
<ns1:EdadCalculo>039</ns1:EdadCalculo>
<ns1:PlazoSeguro></ns1:PlazoSeguro>
<ns1:PlazoPago></ns1:PlazoPago>
<ns1:SumaAsegurada>250,000</ns1:SumaAsegurada>
<ns1:Coaseguro>.00</ns1:Coaseguro>
</ns1:item>
<ns1:item>
<ns1:Clave>00150</ns1:Clave>
<ns1:Seccion></ns1:Seccion>
<ns1:NombreCobertura>SEGURO DE MUERTE ACCIDENTAL</ns1:NombreCobertura>
<ns1:LimiteMaximo>250,000</ns1:LimiteMaximo>
<ns1:Deducible>.00</ns1:Deducible>
<ns1:Prima>95.00</ns1:Prima>
<ns1:EdadCalculo>039</ns1:EdadCalculo>
<ns1:PlazoSeguro></ns1:PlazoSeguro>
<ns1:PlazoPago></ns1:PlazoPago>
<ns1:SumaAsegurada>250,000</ns1:SumaAsegurada>
<ns1:Coaseguro>.00</ns1:Coaseguro>
</ns1:item>
<ns1:item>
<ns1:Clave>00150</ns1:Clave>
<ns1:Seccion></ns1:Seccion>
<ns1:NombreCobertura>SEGURO DE MUERTE ACCIDENTAL</ns1:NombreCobertura>
<ns1:LimiteMaximo>500</ns1:LimiteMaximo>
<ns1:Deducible>.00</ns1:Deducible>
<ns1:Prima>36.36</ns1:Prima>
<ns1:EdadCalculo>039</ns1:EdadCalculo>
<ns1:PlazoSeguro></ns1:PlazoSeguro>
<ns1:PlazoPago></ns1:PlazoPago>
<ns1:SumaAsegurada>500</ns1:SumaAsegurada>
<ns1:Coaseguro>.00</ns1:Coaseguro>
</ns1:item>
</ns1:Coberturas>
<ns1:Beneficiarios/>
</ns1:item>
</ns1:Asegurados>
<ns1:Incisos/>
<ns1:Recibos>
<ns1:item>
<ns1:NumeroRecibo>5183648</ns1:NumeroRecibo>
<ns1:FechaEmision>2011-02-15</ns1:FechaEmision>
<ns1:FechaEstatus>2011-02-26</ns1:FechaEstatus>
<ns1:FechaPago>2011-02-26</ns1:FechaPago>
<ns1:Estatus>00</ns1:Estatus>
<ns1:DescripcionEstatus>GENERADO</ns1:DescripcionEstatus>
<ns1:Importe>000000275.89</ns1:Importe>
<ns1:Recargos>.00</ns1:Recargos>
<ns1:DerechoPoliza>.00</ns1:DerechoPoliza>
<ns1:FechaInicioVigencia>2011-02-15</ns1:FechaInicioVigencia>
<ns1:FechaFinVigencia>2011-05-15</ns1:FechaFinVigencia>
<ns1:PrimaTotal xsi:nil="true"/>
<ns1:PrimaPagada xsi:nil="true"/>
<ns1:PrimaPendiente xsi:nil="true"/>
</ns1:item>
<ns1:item>
<ns1:NumeroRecibo>5183649</ns1:NumeroRecibo>
<ns1:FechaEmision>2011-02-15</ns1:FechaEmision>
<ns1:FechaEstatus>2011-02-15</ns1:FechaEstatus>
<ns1:FechaPago>1900-00-00</ns1:FechaPago>
<ns1:Estatus>00</ns1:Estatus>
<ns1:DescripcionEstatus>GENERADO</ns1:DescripcionEstatus>
<ns1:Importe>000000275.89</ns1:Importe>
<ns1:Recargos>.00</ns1:Recargos>
<ns1:DerechoPoliza>.00</ns1:DerechoPoliza>
<ns1:FechaInicioVigencia>2011-05-15</ns1:FechaInicioVigencia>
<ns1:FechaFinVigencia>2011-08-15</ns1:FechaFinVigencia>
<ns1:PrimaTotal xsi:nil="true"/>
<ns1:PrimaPagada xsi:nil="true"/>
<ns1:PrimaPendiente xsi:nil="true"/>
</ns1:item>
<ns1:item>
<ns1:NumeroRecibo>5183650</ns1:NumeroRecibo>
<ns1:FechaEmision>2011-02-15</ns1:FechaEmision>
<ns1:FechaEstatus>2011-02-15</ns1:FechaEstatus>
<ns1:FechaPago>1900-00-00</ns1:FechaPago>
<ns1:Estatus>00</ns1:Estatus>
<ns1:DescripcionEstatus>GENERADO</ns1:DescripcionEstatus>
<ns1:Importe>000000275.89</ns1:Importe>
<ns1:Recargos>.00</ns1:Recargos>
<ns1:DerechoPoliza>.00</ns1:DerechoPoliza>
<ns1:FechaInicioVigencia>2011-08-15</ns1:FechaInicioVigencia>
<ns1:FechaFinVigencia>2011-11-15</ns1:FechaFinVigencia>
<ns1:PrimaTotal xsi:nil="true"/>
<ns1:PrimaPagada xsi:nil="true"/>
<ns1:PrimaPendiente xsi:nil="true"/>
</ns1:item>
<ns1:item>
<ns1:NumeroRecibo>5183651</ns1:NumeroRecibo>
<ns1:FechaEmision>2011-02-15</ns1:FechaEmision>
<ns1:FechaEstatus>2011-02-15</ns1:FechaEstatus>
<ns1:FechaPago>1900-00-00</ns1:FechaPago>
<ns1:Estatus>00</ns1:Estatus>
<ns1:DescripcionEstatus>GENERADO</ns1:DescripcionEstatus>
<ns1:Importe>000000275.89</ns1:Importe>
<ns1:Recargos>.00</ns1:Recargos>
<ns1:DerechoPoliza>.00</ns1:DerechoPoliza>
<ns1:FechaInicioVigencia>2011-11-15</ns1:FechaInicioVigencia>
<ns1:FechaFinVigencia>2012-02-15</ns1:FechaFinVigencia>
<ns1:PrimaTotal xsi:nil="true"/>
<ns1:PrimaPagada xsi:nil="true"/>
<ns1:PrimaPendiente xsi:nil="true"/>
</ns1:item>
</ns1:Recibos>
<ns1:Endosos/>
<ns1:Siniestros/>
</ns1:Poliza>
</InformacionPolizaResponse>
</soapenv:Body>
</soapenv:Envelope>
(この例はSOAPUIから入手しました)。
です。
さらに、hereからリストされた項目の配列が「item」という名前の別の問題が発生しました。上記のWebServiceResponseのように、そのようにリストされています。だから私にはすべてのことがC#のデシリアライゼーションの問題だと思われました。そして、私はこのすべてに半分の解決策を見出しました。
現実には、実際には.NETが応答をかなり良くしていることがありました。これは、上記のすべての可能性のあるもの(複数の名前空間、配列、「アイテム」のような名前の配列アイテム)の逆シリアル化の問題です。
http://www.codeproject.com/KB/webservices/Java_WS_NET.aspx
は、私はこのような私のプロキシでメソッドをオーバーライド:
私はサービスの結果がcatchedれたかどうかを確認するために、例外をスローprotected override System.Net.WebResponse GetWebResponse(System.Net.WebRequest request)
{
WebResponse wr = base.GetWebResponse(request);
StreamReader sr = new StreamReader(wr.GetResponseStream());
//throw new Exception(sr.ReadToEnd());
return wr ;
}
、実際にはすぐそこです!
修正後のサービスパック、誰かが解決策を見つけた場合、またはWebResponseを正しく解釈できるかどうかはわかりません。または、その軸サービスを正しく消費するには、.NETのバグのように思われるため、この方法を正しくオーバーライドするだけで、これに最適な方法は、すべての配列に「アイテム」があるために問題があると思うからです。 "それに。
ありがとうございます。
私は本当に本当に助けていただければ幸いです。
もう一度おねがいします。
おかげで、それは私が、文書/リテラル・サービスおよびカスタムWSDLとOC4JベースのWebサービスを使用していた問題に正確に答えました。 – Etienne