Poluição do SOAP

5 respostas
fr3akoutTotal

Bom dia galera, blx?

Tenho uma simples pergunta. Queria saber porquê que meu webservice me trás um XML poluído assim:

[b]O que vai fica assim:[/b]

<?xml version="1.0" encoding="UTF-8"?>

<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>
		<somar xmlns="http://core.calculadora2000.polishop.com">
			<primeiroAlgarismo>12.0</primeiroAlgarismo>
			<segundoAlgarismo>5.0</segundoAlgarismo>
		</somar>
	</soapenv:Body>
</soapenv:Envelope>

[b]O que volta fica assim:[/b]

<?xml version="1.0" encoding="utf-8"?>

<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>
		<somarResponse xmlns="http://core.calculadora2000.polishop.com">
			<somarReturn>17.0</somarReturn>
		</somarResponse>
	</soapenv:Body>
</soapenv:Envelope>

[color=red]Eu precisava que chegasse e voltasse um XML sem esses soapenv:Envelope e soapenv:Body

Tipo assim:[/color]

O que vai:

<?xml version="1.0" encoding="utf-8"?>

<FinishOrder xmlns:xsd=“XXXXXXXXXXXXXXXXXXXXXXXXXXXX”
xmlns:xsi=“XXXXXXXXXXXXXXXXXXXXXXXXXXXX”>

&lt;product&gt;
	&lt;retailerCode&gt;123456&lt;/retailerCode&gt;
            &lt;price&gt;99.9&lt;/price&gt;
&lt;/product&gt;

</FinishOrder>

O que volta:

<?xml version="1.0" encoding="utf-8"?>

<FinishOrder xmlns:xsd=“XXXXXXXXXXXXXXXXXXXXXXXXXXXX”
xmlns:xsi=“XXXXXXXXXXXXXXXXXXXXXXXXXXXX”>

&lt;product&gt;
	&lt;orderReceipt&gt;[telefone removido]&lt;/orderReceipt&gt;
&lt;/product&gt;

</FinishOrder>

[color=red]Isso eu sei que é possível. Porém não sei como fazer, alguém pode dar uma luz???[/color]

Se ajudar, to usando Axis 1.4 + Eclipse Ganymede + Tomcat 6.0

abrazzzzzzzzzzzzzzzzzzzzzz

5 Respostas

Rafael_Nunes

Porque esse é o envelope SOAP, é assim que os Web Services tradicionais se comunicam e promovem a tal da interoperabilidade entre plataformas distintas.

Se quer algo mais simples e prático, não use SOAP, use REST.

fr3akoutTotal

Entendi, então que framework eu devo utilizar para utilizar REST? Porque pelo que vc respondeu, o Axis não serve pra isso então…

Grato

Rafael_Nunes

O Axis2 até tem algumas implementações de REST, ams é bem capenga.

Eu sugiro o JBoss RestEasy.

fr3akoutTotal

belezera, c conhece algum tutorial legal online pra ele?

valeu!

Rafael_Nunes

A própria documentação dele é bem intuitiva e fácil de se seguir:

http://www.jboss.org/resteasy/docs.html

Criado 3 de novembro de 2008
Ultima resposta 3 de nov. de 2008
Respostas 5
Participantes 2