Pergunta

Eu tenho que usar uma 3ª serviço web partido implementado em .NET 2.0 (no IIS, é claro).

Eu tenho que fazer um cliente em Java. Eu estou usando wsdl2java para gerar o stub SOAP.

Como o projeto original, Apache Axis agora aparece sem manutenção, e eu estava tendo alguns problemas analisar algumas respostas do serviço, eu converti o cliente a usar a (1.5) a versão mais recente do Axis2. Agora, o serviço NET não vai mesmo reconhecer os meus pedidos.

Eu consegui obter o "chunking" desligado (onde "esboço" é uma variável do tipo MumbleStub gerado pelo wsdl2java, e eu estou mostrando o que são várias linhas de código como uma linha terrível aqui):

stub._getServiceClient().getOptions().setProperty( HTTPConstants.CHUNKED, Boolean.FALSE);

.. assim pelo menos o serviço reconhece o meu pedido AS um pedido, embora um mau: "HTTP/1.1 400 Bad Request" é a resposta agora (em oposição a uma "intro / resumo" página me oferecendo um link para o WSDL).

Eu observei que o Eixo ( "1") pedido tinha um cabeçalho Content-Type diferente (text / xml, vs application / soap-xml), e eu estou querendo saber como alterar este cabeçalho do pedido, se é de fato o problema.

Como alternativa, tem mais alguém teve este problema? O problema é realmente o (exibíveis aqui, como parece "injeção elemento" para o motor blog) ... xml Versão "1.0" ... "meta XML introdução tag" que Axis2 adicionado ao início do pedido?

WS-Deathstar, de fato.

Foi útil?

Solução

Como você menciona os diferentes cabeçalho do tipo de conteúdo que eu acho que suas tentativas cliente para enviar o SOAP 1.2 solicitações e 3º aplicativo partido só entende SOAP 1.1

Tente alterar a versão sabão usado como AFAIK Axis2 usa SOAP 1.2 por padrão

stub._getServiceClient().getOptions().setSoapVersionURI(org.apache.axiom.soap.SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top