Estou criando um *WebServices ASMX *e queria em caso de *erro
*retornar uma *SoapException.* Isso é aconselhado ? E se o sistema que
tiver consumindo meu *WebServices *for um sistema *muito antigo*, feito em
uma *tecnologia/linguagem* *que não dê suporte ao tratamento de exceções* e
não tenha como capturar no cliente essa *SoapException *? Qual a opinião de
vocês a respeito ?
Quando se trabalha com WebServices, tudo é XML. A plataforma .Net só
facilita nossa vida em alguns aspectos gerando as classes proxy do WSDL.
Quando você lançar uma SoapException provavelmente o cara vai receber um
xml parecido com esse:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>
System.Web.Services.Protocols.SoapException: Server was unable
to process request. --- > System.DivideByZeroException:
Attempted to divide by zero.
at Service.HelloWorld() in C:\Test\Service.asmx.cs:line 35
--- End of inner exception stack trace ---
</faultstring>
<detail />
</soap:Fault>
</soap:Body>
</soap:Envelope>
Ou seja, mesmo que ele consuma manualmente, sem classes proxy ou algo do
tipo, o erro será informado para ele via XML.
Em 18 de outubro de 2012 22:24, Forum Doubts <forumdou...@gmail.com>escreveu:
> Estou criando um *WebServices ASMX *e queria em caso de *erro
> *retornar uma *SoapException.* Isso é aconselhado ? E se o sistema que
> tiver consumindo meu *WebServices *for um sistema *muito antigo*, feito
> em uma *tecnologia/linguagem* *que não dê suporte ao tratamento de
> exceções* e não tenha como capturar no cliente essa *SoapException *?
> Qual a opinião de vocês a respeito ?
> De antemão agradecido.
> Atenciosamente.
> --
> Você recebeu esta mensagem porque faz parte do grupo .Net Architects
> hospedado no Google Groups.
> Para postar envie uma mensagem para dotnetarchitects@googlegroups.com
> Para sair do grupo envie uma mensagem para
> dotnetarchitects+unsubscribe@googlegroups.com
> Para mais opções visite o grupo em
> http://groups.google.com/group/dotnetarchitects?hl=pt-br
Mas tem um detalhe que ainda não está 100 % claro.
Mesmo que uma aplicação que foi feita em *COBOL(Cobol estruturado)*, que
foi feita a 30 anos atras, mesmo que o meu *WebServices *lance uma *
SoapException* essa aplicação em *COBOL *citada irá conseguir obter essa
exceção e utilizar a mesma ?
Atenciosamente.
2012/10/18 Abner das Dores <abner.do...@gmail.com>
> Quando se trabalha com WebServices, tudo é XML. A plataforma .Net só
> facilita nossa vida em alguns aspectos gerando as classes proxy do WSDL.
> Quando você lançar uma SoapException provavelmente o cara vai receber um
> xml parecido com esse:
> <faultstring>
> System.Web.Services.Protocols.SoapException: Server was unable to process request. --- > System.DivideByZeroException: Attempted to divide by zero.
> at Service.HelloWorld() in C:\Test\Service.asmx.cs:line 35
> --- End of inner exception stack trace ---
> </faultstring>
> <detail />
> </soap:Fault>
> </soap:Body>
> </soap:Envelope>
> Ou seja, mesmo que ele consuma manualmente, sem classes proxy ou algo do
> tipo, o erro será informado para ele via XML.
> Em 18 de outubro de 2012 22:24, Forum Doubts <forumdou...@gmail.com>escreveu:
>> Olaa,
>> Estou criando um *WebServices ASMX *e queria em caso de *erro
>> *retornar uma *SoapException.* Isso é aconselhado ? E se o sistema que
>> tiver consumindo meu *WebServices *for um sistema *muito antigo*, feito
>> em uma *tecnologia/linguagem* *que não dê suporte ao tratamento de
>> exceções* e não tenha como capturar no cliente essa *SoapException *?
>> Qual a opinião de vocês a respeito ?
>> De antemão agradecido.
>> Atenciosamente.
>> --
>> Você recebeu esta mensagem porque faz parte do grupo .Net Architects
>> hospedado no Google Groups.
>> Para postar envie uma mensagem para dotnetarchitects@googlegroups.com
>> Para sair do grupo envie uma mensagem para
>> dotnetarchitects+unsubscribe@googlegroups.com
>> Para mais opções visite o grupo em
>> http://groups.google.com/group/dotnetarchitects?hl=pt-br
> --
> Você recebeu esta mensagem porque faz parte do grupo .Net Architects
> hospedado no Google Groups.
> Para postar envie uma mensagem para dotnetarchitects@googlegroups.com
> Para sair do grupo envie uma mensagem para
> dotnetarchitects+unsubscribe@googlegroups.com
> Para mais opções visite o grupo em
> http://groups.google.com/group/dotnetarchitects?hl=pt-br
Então cara, não faço ideia de como seja feito para consumir Web Services em
Cobol, mas posso garantir duas coisas:
1) Não, quem for consumir não vai enxergar a mesma classe SoapException.
Pelo simples fato dela ser uma implementação da plataforma .Net.
2) Na pior das hipóteses, independente da plataforma, o cara deve
manualmente fazer uma requisição para o ser serviço, passando o XML de
requisição que ele montou nó a nó, e sua aplicação vai retornar um XML de
resposta (que em caso de erro vai ser parecido com aquele que eu mandei
anteriormente), e ele também terá que tratar nó a nó.
Acho que para você entender melhor, eu recomendaria você utilizar o SoapUI
para testar ser Web Service: http://www.soapui.org/
O SoapUI faz requisições para WebServices utilizando o XML puro (ele cria
os modelos iniciais pra você), e ai você consegue ver a sua resposta também
em XML. Acho que fazendo uns testes com o SoapUI fica mais fácil de
enxergar como funcionaria seu WS da maneira mais primitiva, independente da
plataforma que está consumindo.
Espero ter ajudado.
Att.,
Abner
Em 19 de outubro de 2012 00:04, Forum Doubts <forumdou...@gmail.com>escreveu:
> Mas tem um detalhe que ainda não está 100 % claro.
> Mesmo que uma aplicação que foi feita em *COBOL(Cobol estruturado)*, que
> foi feita a 30 anos atras, mesmo que o meu *WebServices *lance uma *
> SoapException* essa aplicação em *COBOL *citada irá conseguir obter
> essa exceção e utilizar a mesma ?
> Atenciosamente.
> 2012/10/18 Abner das Dores <abner.do...@gmail.com>
>> Quando se trabalha com WebServices, tudo é XML. A plataforma .Net só
>> facilita nossa vida em alguns aspectos gerando as classes proxy do WSDL.
>> Quando você lançar uma SoapException provavelmente o cara vai receber um
>> xml parecido com esse:
>> <faultstring>
>> System.Web.Services.Protocols.SoapException: Server was unable to process request. --- > System.DivideByZeroException: Attempted to divide by zero.
>> at Service.HelloWorld() in C:\Test\Service.asmx.cs:line 35
>> --- End of inner exception stack trace ---
>> </faultstring>
>> <detail />
>> </soap:Fault>
>> </soap:Body>
>> </soap:Envelope>
>> Ou seja, mesmo que ele consuma manualmente, sem classes proxy ou algo do
>> tipo, o erro será informado para ele via XML.
>> Em 18 de outubro de 2012 22:24, Forum Doubts <forumdou...@gmail.com>escreveu:
>>> Olaa,
>>> Estou criando um *WebServices ASMX *e queria em caso de *erro
>>> *retornar uma *SoapException.* Isso é aconselhado ? E se o sistema que
>>> tiver consumindo meu *WebServices *for um sistema *muito antigo*, feito
>>> em uma *tecnologia/linguagem* *que não dê suporte ao tratamento de
>>> exceções* e não tenha como capturar no cliente essa *SoapException *?
>>> Qual a opinião de vocês a respeito ?
>>> De antemão agradecido.
>>> Atenciosamente.
>>> --
>>> Você recebeu esta mensagem porque faz parte do grupo .Net Architects
>>> hospedado no Google Groups.
>>> Para postar envie uma mensagem para dotnetarchitects@googlegroups.com
>>> Para sair do grupo envie uma mensagem para
>>> dotnetarchitects+unsubscribe@googlegroups.com
>>> Para mais opções visite o grupo em
>>> http://groups.google.com/group/dotnetarchitects?hl=pt-br
>> --
>> Você recebeu esta mensagem porque faz parte do grupo .Net Architects
>> hospedado no Google Groups.
>> Para postar envie uma mensagem para dotnetarchitects@googlegroups.com
>> Para sair do grupo envie uma mensagem para
>> dotnetarchitects+unsubscribe@googlegroups.com
>> Para mais opções visite o grupo em
>> http://groups.google.com/group/dotnetarchitects?hl=pt-br
> --
> Você recebeu esta mensagem porque faz parte do grupo .Net Architects
> hospedado no Google Groups.
> Para postar envie uma mensagem para dotnetarchitects@googlegroups.com
> Para sair do grupo envie uma mensagem para
> dotnetarchitects+unsubscribe@googlegroups.com
> Para mais opções visite o grupo em
> http://groups.google.com/group/dotnetarchitects?hl=pt-br
Como o outro amigo disse o que será retornaa a aplicação Cobo será o XML
contendo o SOAPEXception, ficará como responsabilidade dequem desenvolver o
código da chamada identificar que ó retorno é um SOAPException e fazer o
parsing para extrair o máximo de informação possível para tratar essa
exceção.
No ambiente que trabalho dificilmente um Coboi chamará um Web Service dadoo
custo do processamento do parsing de XML e para isto, então, além de minha
opinião er uma boa práticaja que reduzirão acoplamento, seria criada uma
aplicação intermediaria que se comunicaria para o Web Service e retornaria a
informação mais mastigada para o Cobol utilizando algum dos mecanismos de
comunicação entre a alta e a baixa.
Mesmo assim não é nada impossível de se fazer em Cobol e acredito inclusive
até mesmo haver boas implementações já disponíveis no mercado.
Tenho pra mim que se nos baseamos em padrões e os seguimos corretamente a
preocupação fica apenas cm o consumidor que deverá também respeitar esses
padrões para usar meusserviços.
Grato,
Alexandre
De: dotnetarchitects@googlegroups.com
[mailto:dotnetarchitects@googlegroups.com] Em nome de Forum Doubts
Enviada em: sexta-feira, 19 de outubro de 2012 00:04
Para: dotnetarchitects@googlegroups.com
Assunto: Re: [dotnetarchitects] Dúvidas sobre o uso de SoapException.
Caro Abner das Dores,
Obrigado pela atenção,
Mas tem um detalhe que ainda não está 100 % claro.
Mesmo que uma aplicação que foi feita em COBOL(Cobol estruturado), que foi
feita a 30 anos atras, mesmo que o meu WebServices lance uma SoapException
essa aplicação em COBOL citada irá conseguir obter essa exceção e utilizar a
mesma ?
Atenciosamente.
2012/10/18 Abner das Dores <abner.do...@gmail.com>
Quando se trabalha com WebServices, tudo é XML. A plataforma .Net só
facilita nossa vida em alguns aspectos gerando as classes proxy do WSDL.
Quando você lançar uma SoapException provavelmente o cara vai receber um xml
parecido com esse:
<faultstring>
System.Web.Services.Protocols.SoapException: Server was unable to
process request. --- > System.DivideByZeroException: Attempted to
divide by zero.
at Service.HelloWorld() in C:\Test\Service.asmx.cs:line 35
--- End of inner exception stack trace ---
</faultstring>
<detail />
</soap:Fault>
</soap:Body>
</soap:Envelope>
Ou seja, mesmo que ele consuma manualmente, sem classes proxy ou algo do
tipo, o erro será informado para ele via XML.
Em 18 de outubro de 2012 22:24, Forum Doubts <forumdou...@gmail.com>
escreveu:
Olaa,
Estou criando um WebServices ASMX e queria em caso de erro
retornar uma SoapException. Isso é aconselhado ? E se o sistema que tiver
consumindo meu WebServices for um sistema muito antigo, feito em uma
tecnologia/linguagem que não dê suporte ao tratamento de exceções e não
tenha como capturar no cliente essa SoapException ? Qual a opinião de vocês
a respeito ?
De antemão agradecido.
Atenciosamente.
-- Você recebeu esta mensagem porque faz parte do grupo .Net Architects
hospedado no Google Groups.
Para postar envie uma mensagem para dotnetarchitects@googlegroups.com Para sair do grupo envie uma mensagem para
dotnetarchitects+unsubscribe@googlegroups.com
<mailto:dotnetarchitects%2Bunsubscribe@googlegroups.com> Para mais opções visite o grupo em
http://groups.google.com/group/dotnetarchitects?hl=pt-br
-- Você recebeu esta mensagem porque faz parte do grupo .Net Architects
hospedado no Google Groups.
Para postar envie uma mensagem para dotnetarchitects@googlegroups.com Para sair do grupo envie uma mensagem para
dotnetarchitects+unsubscribe@googlegroups.com
<mailto:dotnetarchitects%2Bunsubscribe@googlegroups.com> Para mais opções visite o grupo em
http://groups.google.com/group/dotnetarchitects?hl=pt-br
-- Você recebeu esta mensagem porque faz parte do grupo .Net Architects
hospedado no Google Groups.
Para postar envie uma mensagem para dotnetarchitects@googlegroups.com Para sair do grupo envie uma mensagem para
dotnetarchitects+unsubscribe@googlegroups.com
Para mais opções visite o grupo em
http://groups.google.com/group/dotnetarchitects?hl=pt-br
Acho bem dificil algum programador em alguma plataforma/linguagem trabalhar
com webservice soap fazendo parsing de xml na mão. A especificação de certa
forma foi feita para ser trabalhada com a utilização de ferramentas de
geração de código.
Se as plataformas distintas implementam e seguem a especificação
corretamente então sim, o SoapException seria entendido por ambas as
pontas. Uma das principais features de WS-* (se não a principal) é a
interoperabilidade entre várias plataformas.
2012/10/19 Alexandre Santos Costa <alexandresantosco...@gmail.com>
> Como o outro amigo disse o que será retornaa a aplicação Cobo será o XML
> contendo o SOAPEXception, ficará como responsabilidade dequem desenvolver o
> código da chamada identificar que ó retorno é um SOAPException e fazer o
> parsing para extrair o máximo de informação possível para tratar essa
> exceção.****
> ** **
> No ambiente que trabalho dificilmente um Coboi chamará um Web Service
> dadoo custo do processamento do parsing de XML e para isto, então, além de
> minha opinião er uma boa práticaja que reduzirão acoplamento, seria criada
> uma aplicação intermediaria que se comunicaria para o Web Service e
> retornaria a informação mais mastigada para o Cobol utilizando algum dos
> mecanismos de comunicação entre a alta e a baixa.****
> ** **
> Mesmo assim não é nada impossível de se fazer em Cobol e acredito
> inclusive até mesmo haver boas implementações já disponíveis no mercado.**
> **
> ** **
> Tenho pra mim que se nos baseamos em padrões e os seguimos corretamente a
> preocupação fica apenas cm o consumidor que deverá também respeitar esses
> padrões para usar meusserviços.****
> ** **
> Grato,****
> ** **
> Alexandre****
> ** **
> *De:* dotnetarchitects@googlegroups.com [mailto:
> dotnetarchitects@googlegroups.com] *Em nome de *Forum Doubts
> *Enviada em:* sexta-feira, 19 de outubro de 2012 00:04
> *Para:* dotnetarchitects@googlegroups.com
> *Assunto:* Re: [dotnetarchitects] Dúvidas sobre o uso de SoapException.***
> *
> ** **
> Caro Abner das Dores,****
> ** **
> Obrigado pela atenção, ****
> ** **
> Mas tem um detalhe que ainda não está 100 % claro. ****
> ** **
> Mesmo que uma aplicação que foi feita em *COBOL(Cobol estruturado)*, que
> foi feita a 30 anos atras, mesmo que o meu *WebServices *lance uma *
> SoapException* essa aplicação em *COBOL *citada irá conseguir obter
> essa exceção e utilizar a mesma ?****
> ** **
> Atenciosamente.****
> 2012/10/18 Abner das Dores <abner.do...@gmail.com>****
> Quando se trabalha com WebServices, tudo é XML. A plataforma .Net só
> facilita nossa vida em alguns aspectos gerando as classes proxy do WSDL.
> Quando você lançar uma SoapException provavelmente o cara vai receber um
> xml parecido com esse:****
> System.Web.Services.Protocols.SoapException: Server was unable to process request. --- > System.DivideByZeroException: Attempted to divide by zero.
> at Service.HelloWorld() in C:\Test\Service.asmx.cs:line 35
> ****
> ** **
> --- End of inner exception stack trace ---
> </faultstring>
> ****
> ** **
> <detail />
> ****
> ** **
> </soap:Fault>
> ****
> ** **
> </soap:Body>
> ****
> ** **
> </soap:Envelope>****
> ** **
> Ou seja, mesmo que ele consuma manualmente, sem classes proxy ou algo do
> tipo, o erro será informado para ele via XML.****
> ** **
> Em 18 de outubro de 2012 22:24, Forum Doubts <forumdou...@gmail.com>
> escreveu:****
> Olaa,****
> ** **
> ** **
> Estou criando um *WebServices ASMX *e queria em caso de *erro
> *retornar uma *SoapException.* Isso é aconselhado ? E se o sistema que
> tiver consumindo meu *WebServices *for um sistema *muito antigo*, feito
> em uma *tecnologia/linguagem* *que não dê suporte ao tratamento de
> exceções* e não tenha como capturar no cliente essa *SoapException *?
> Qual a opinião de vocês a respeito ?****
> ** **
> De antemão agradecido.****
> ** **
> Atenciosamente.****
> --
> Você recebeu esta mensagem porque faz parte do grupo .Net Architects
> hospedado no Google Groups.
> Para postar envie uma mensagem para dotnetarchitects@googlegroups.com
> Para sair do grupo envie uma mensagem para
> dotnetarchitects+unsubscribe@googlegroups.com
> Para mais opções visite o grupo em
> http://groups.google.com/group/dotnetarchitects?hl=pt-br****
> ** **
> --
> Você recebeu esta mensagem porque faz parte do grupo .Net Architects
> hospedado no Google Groups.
> Para postar envie uma mensagem para dotnetarchitects@googlegroups.com
> Para sair do grupo envie uma mensagem para
> dotnetarchitects+unsubscribe@googlegroups.com
> Para mais opções visite o grupo em
> http://groups.google.com/group/dotnetarchitects?hl=pt-br****
> ** **
> --
> Você recebeu esta mensagem porque faz parte do grupo .Net Architects
> hospedado no Google Groups.
> Para postar envie uma mensagem para dotnetarchitects@googlegroups.com
> Para sair do grupo envie uma mensagem para
> dotnetarchitects+unsubscribe@googlegroups.com
> Para mais opções visite o grupo em
> http://groups.google.com/group/dotnetarchitects?hl=pt-br****
> --
> Você recebeu esta mensagem porque faz parte do grupo .Net Architects
> hospedado no Google Groups.
> Para postar envie uma mensagem para dotnetarchitects@googlegroups.com
> Para sair do grupo envie uma mensagem para
> dotnetarchitects+unsubscribe@googlegroups.com
> Para mais opções visite o grupo em
> http://groups.google.com/group/dotnetarchitects?hl=pt-br
Se você está criando WebServices ASMX pra falar com COBOL, eu usaria REST com HTTP puro ao invés de SOAP pra falar. É muito mais simples.
Mas caso você já possua ferramentas SOAP com o COBOL, siga em frente e manda ver.
Eu particularmente quando faço a façade de um WebService eu nunca retorno uma SOAP Exception ou exception de qualquer tipo. Geralmente encapsulo o retorno para que haja jeito de verificar se houve sucesso ou falha, e uma mensagem de erro em caso de falha. Dessa maneira, fica muito mais fácil garantir a interoperabilidade.
Abs,
CV
Em quinta-feira, 18 de outubro de 2012 22h24min46s UTC-3, driForum escreveu:
> Estou criando um *WebServices ASMX *e queria em caso de *erro > *retornar uma *SoapException.* Isso é aconselhado ? E se o sistema que > tiver consumindo meu *WebServices *for um sistema *muito antigo*, feito > em uma *tecnologia/linguagem* *que não dê suporte ao tratamento de > exceções* e não tenha como capturar no cliente essa *SoapException *? > Qual a opinião de vocês a respeito ?
> Se você está criando WebServices ASMX pra falar com COBOL, eu usaria REST
> com HTTP puro ao invés de SOAP pra falar. É muito mais simples.
> Mas caso você já possua ferramentas SOAP com o COBOL, siga em frente e
> manda ver.
> Eu particularmente quando faço a façade de um WebService eu nunca retorno
> uma SOAP Exception ou exception de qualquer tipo. Geralmente encapsulo o
> retorno para que haja jeito de verificar se houve sucesso ou falha, e uma
> mensagem de erro em caso de falha. Dessa maneira, fica muito mais fácil
> garantir a interoperabilidade.
> Abs,
> CV
> Em quinta-feira, 18 de outubro de 2012 22h24min46s UTC-3, driForum
> escreveu:
>> Olaa,
>> Estou criando um *WebServices ASMX *e queria em caso de *erro
>> *retornar uma *SoapException.* Isso é aconselhado ? E se o sistema que
>> tiver consumindo meu *WebServices *for um sistema *muito antigo*, feito
>> em uma *tecnologia/linguagem* *que não dê suporte ao tratamento de
>> exceções* e não tenha como capturar no cliente essa *SoapException *?
>> Qual a opinião de vocês a respeito ?
>> De antemão agradecido.
>> Atenciosamente.
> --
> Você recebeu esta mensagem porque faz parte do grupo .Net Architects
> hospedado no Google Groups.
> Para postar envie uma mensagem para dotnetarchitects@googlegroups.com
> Para sair do grupo envie uma mensagem para
> dotnetarchitects+unsubscribe@googlegroups.com
> Para mais opções visite o grupo em
> http://groups.google.com/group/dotnetarchitects?hl=pt-br
SOAP é um protocolo padrão de mercado, apesar de existirem diferenças de
implementação da especificação que muitas vezes geram problemas de
interoperabilidade. Ex.: web services escritos em java que não são
consumidos corretamente do .NET e vice-versa. Por essa razão, a linguagem
que implementa o padrão SOAP deve saber tratar os erros.
No framework do .NET existe já o tratamento de dar um throw numa exception
quando ocorre um erro numa chamada SOAP. Essa é a forma que implementaram a
especificação. Nâo significa que é a única possível.
Sobre o COBOL, eu não sou catedrático (conheço muito pouco), mas já te
adianto que parsear xml em COBOL é algo próximo de impossível sem um
toolkit ou ferramenta específica. Dá pra fazer no modo entender xml como
string, mas a chance de dar errado é bem grande.
Tem que entender ainda que tipo de cobol estamos falando. Batch, CICS, IMS
ou outros. Mainframe é uma arquitetura de máquina e de desenvolvimento
bastante diferente de baixa plataforma. Desde o charset (em mainframe é
EBCDIC e não ASCII) até a forma de pensar é diferente. No mainframe batch é
batch e online é online. Nâo dá pra rodar um subprograma batch em mainframe
a partir de uma "tela" para o usuário. Batch só roda agendado. Online roda
dentro de monitor transacional e dependendo do monitor transacional usado é
uma forma diferente de desenvolver.
Eu particularmente desconheço web services em mainframe, principalmente
tratando-se de COBOL. Quando executa-se produtos específicos que rodam em
mainframe (coisas da IBM, Websphere, Java, etc) acho até possível, mas
falando de COBOL especificamente, acho pouco provável que exista algo
pronto.
Em geral, interoperabilidade com baixo sofrimento em mainframe dá-se por
filas MQ.
Outra coisa que tem que tomar muito cuidado falando de web services é dessa
coisa de "o .NET gera automático". Realmente, ele gera o que é bom em
muitos aspectos, mas ruim em outros. Quando falamos de barramentos de
serviços (ESB's) em geral utiliza-se uma abordagem "contract first" o que é
muito difícil fazer em .NET. Em geral quando precisa-se desenvolver um web
service que atenda um WSDL dado por alguém (e não gerado pelo .NET) é
sofrimento certo. Não sei se nas novas versões do framework trabalharam
nisso. Até a 3.5 adianto que é sofrimento.
> Grato pela atenção dada ao post.Minhas dúvidas foram sanadas.
> Ronaldo Silva
> Estudante de Sistemas de Informação.
> 2012/10/19 Carlos Vítor Barros <carlosvitorbar...@gmail.com>
>> Se você está criando WebServices ASMX pra falar com COBOL, eu usaria REST
>> com HTTP puro ao invés de SOAP pra falar. É muito mais simples.
>> Mas caso você já possua ferramentas SOAP com o COBOL, siga em frente e
>> manda ver.
>> Eu particularmente quando faço a façade de um WebService eu nunca retorno
>> uma SOAP Exception ou exception de qualquer tipo. Geralmente encapsulo o
>> retorno para que haja jeito de verificar se houve sucesso ou falha, e uma
>> mensagem de erro em caso de falha. Dessa maneira, fica muito mais fácil
>> garantir a interoperabilidade.
>> Abs,
>> CV
>> Em quinta-feira, 18 de outubro de 2012 22h24min46s UTC-3, driForum
>> escreveu:
>>> Olaa,
>>> Estou criando um *WebServices ASMX *e queria em caso de *erro
>>> *retornar uma *SoapException.* Isso é aconselhado ? E se o sistema que
>>> tiver consumindo meu *WebServices *for um sistema *muito antigo*, feito
>>> em uma *tecnologia/linguagem* *que não dê suporte ao tratamento de
>>> exceções* e não tenha como capturar no cliente essa *SoapException *?
>>> Qual a opinião de vocês a respeito ?
>>> De antemão agradecido.
>>> Atenciosamente.
>> --
>> Você recebeu esta mensagem porque faz parte do grupo .Net Architects
>> hospedado no Google Groups.
>> Para postar envie uma mensagem para dotnetarchitects@googlegroups.com
>> Para sair do grupo envie uma mensagem para
>> dotnetarchitects+unsubscribe@googlegroups.com
>> Para mais opções visite o grupo em
>> http://groups.google.com/group/dotnetarchitects?hl=pt-br
> --
> Você recebeu esta mensagem porque faz parte do grupo .Net Architects
> hospedado no Google Groups.
> Para postar envie uma mensagem para dotnetarchitects@googlegroups.com
> Para sair do grupo envie uma mensagem para
> dotnetarchitects+unsubscribe@googlegroups.com
> Para mais opções visite o grupo em
> http://groups.google.com/group/dotnetarchitects?hl=pt-br
Cara, se vc souber quais são os tipos de respostas que o WS vai enviar, dá pra da pra fazer um parser XML numa boa. Não é nada complexo, só é trabalhoso.
Mas se vc for fazer mesmo, pense que só vai ter aquele trabalho uma vez e nunca mais. :-)
Agora respondendo a sua pergunta diretamente, independente de parserXML ou ferramenta de geração de código, eu prefiro criar um TO que teria o status da transação, mensagem de feedback e os outros campos que vc precise retornar. Em caso de muito TO's, faz uma herança dos campos comuns.
On Thursday, October 18, 2012 10:24:46 PM UTC-3, driForum wrote:
> Olaa,
> Estou criando um *WebServices ASMX *e queria em caso de *erro > *retornar uma *SoapException.* Isso é aconselhado ? E se o sistema que > tiver consumindo meu *WebServices *for um sistema *muito antigo*, feito > em uma *tecnologia/linguagem* *que não dê suporte ao tratamento de > exceções* e não tenha como capturar no cliente essa *SoapException *? > Qual a opinião de vocês a respeito ?
> Cara, se vc souber quais são os tipos de respostas que o WS vai enviar, dá
> pra da pra fazer um parser XML numa boa. Não é nada complexo, só é
> trabalhoso.
> Mas se vc for fazer mesmo, pense que só vai ter aquele trabalho uma vez e
> nunca mais. :-)
> Agora respondendo a sua pergunta diretamente, independente de parserXML ou
> ferramenta de geração de código, eu prefiro criar um TO que teria o status
> da transação, mensagem de feedback e os outros campos que vc precise
> retornar. Em caso de muito TO's, faz uma herança dos campos comuns.
> On Thursday, October 18, 2012 10:24:46 PM UTC-3, driForum wrote:
>> Olaa,
>> Estou criando um *WebServices ASMX *e queria em caso de *erro
>> *retornar uma *SoapException.* Isso é aconselhado ? E se o sistema que
>> tiver consumindo meu *WebServices *for um sistema *muito antigo*, feito
>> em uma *tecnologia/linguagem* *que não dê suporte ao tratamento de
>> exceções* e não tenha como capturar no cliente essa *SoapException *?
>> Qual a opinião de vocês a respeito ?
>> De antemão agradecido.
>> Atenciosamente.
> --
> Você recebeu esta mensagem porque faz parte do grupo .Net Architects
> hospedado no Google Groups.
> Para postar envie uma mensagem para dotnetarchitects@googlegroups.com
> Para sair do grupo envie uma mensagem para
> dotnetarchitects+unsubscribe@googlegroups.com
> Para mais opções visite o grupo em
> http://groups.google.com/group/dotnetarchitects?hl=pt-br