Criação de client Webservice de serviço construído em ASP.NET

Olá,

preciso consumir um webservice. Pelo que vi ele foi desenvolvido utilizando .NET.

Quando usei o SOAPui para criar um request de exemplo ele não ficou correto.

Quando utilizei uma ferramenta da microsoft, WcfTestClient.exe, ele criou o seguinte XML.

Pensei em montar esse xml usando javax.xml.soap mas não estou conseguindo.

Alguma sugestão do melhor caminho?

Obrigado
Segue o xml do request

<s:Envelope xmlns:a="http://www.w3.org/2005/08/addressing" xmlns:s="http://www.w3.org/2003/05/soap-envelope"> <s:Header> <a:Action s:mustUnderstand="1">http://tempuri.org/aaaaa/CreateServiceOrder</a:Action> <a:MessageID>urn:uuid:62714ce4-612c-4cc3-bdc3-cf9a1b599c43</a:MessageID> <a:ReplyTo> <a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address> </a:ReplyTo> </s:Header> <s:Body> <CreateServiceOrder xmlns="http://tempuri.org/"> <webServiceCreateServiceOrder xmlns:d4p1="http://schemas.datacontract.org/2004/07/aaaas.Core.Model" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> <d4p1:BusinessBenefited i:nil="true" /> <d4p1:Category i:nil="true" /> <d4p1:CategoryDescription i:nil="true" /> <d4p1:CategorySituation i:nil="true" /> <d4p1:CategorySubType i:nil="true" /> <d4p1:CategoryType i:nil="true" /> <d4p1:CodeIntegration>12</d4p1:CodeIntegration> <d4p1:Contract i:nil="true" /> <d4p1:ContractService i:nil="true" /> <d4p1:ContractServiceCover i:nil="true" /> <d4p1:DateTimeOfCreation>2012-10-31T15:27:00</d4p1:DateTimeOfCreation> <d4p1:Description i:nil="true" /> <d4p1:EnvironmentalCondition>false</d4p1:EnvironmentalCondition> <d4p1:Equipment i:nil="true" /> <d4p1:ExternalCode>12</d4p1:ExternalCode> <d4p1:GroupSolution i:nil="true" /> <d4p1:Impact>Low</d4p1:Impact> <d4p1:IsPreOrder>false</d4p1:IsPreOrder> <d4p1:Justify i:nil="true" /> <d4p1:Login i:nil="true" /> <d4p1:LoginUserAgentResponsible i:nil="true" /> <d4p1:LoginUserBenefited i:nil="true" /> <d4p1:LoginUserRequester i:nil="true" /> <d4p1:eeeeServiceOrderNumber>0</d4p1:eeeeServiceOrderNumber> <d4p1:Parameters xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" /> <d4p1:Password i:nil="true" /> <d4p1:Priority i:nil="true" /> <d4p1:Type>Incident</d4p1:Type> <d4p1:Urgency>Low</d4p1:Urgency> </webServiceCreateServiceOrder> </CreateServiceOrder> </s:Body> </s:Envelope>

No SoapUI quando você coloca o WSDL na criação de um novo projeto ele já tras para você todos os requests das operações. Você tem o wsdl do webservice? Ou está fazendo a mão?

Isso, mas quando utilizo o SOAPui o request fica bem diferente, e quando submeto ele retorna erro.

Segue o xml do SOAP ui e o resultado.

[code]<soap:Envelope xmlns:soap=“http://www.w3.org/2003/05/soap-envelope” xmlns:tem=“http://tempuri.org/” xmlns:ssi=“http://schemas.datacontract.org/2004/07/SSI.eeee.Core.Model” xmlns:arr=“http://schemas.microsoft.com/2003/10/Serialization/Arrays”>
soap:Header/
soap:Body
tem:CreateServiceOrder

tem:webServiceCreateServiceOrder

ssi:BusinessBenefited?</ssi:BusinessBenefited>

ssi:Category?</ssi:Category>

ssi:CategoryDescription?</ssi:CategoryDescription>

ssi:CategorySituation?</ssi:CategorySituation>

ssi:CategorySubType?</ssi:CategorySubType>

ssi:CategoryType?</ssi:CategoryType>

ssi:CodeIntegration?</ssi:CodeIntegration>

ssi:Contract?</ssi:Contract>

ssi:ContractService?</ssi:ContractService>

ssi:ContractServiceCover?</ssi:ContractServiceCover>

ssi:DateTimeOfCreation?</ssi:DateTimeOfCreation>

ssi:Description?</ssi:Description>

ssi:EnvironmentalCondition?</ssi:EnvironmentalCondition>

ssi:Equipment?</ssi:Equipment>

ssi:ExternalCode?</ssi:ExternalCode>

ssi:GroupSolution?</ssi:GroupSolution>

ssi:Impact?</ssi:Impact>

ssi:IsPreOrder?</ssi:IsPreOrder>

ssi:Justify?</ssi:Justify>

ssi:Login?</ssi:Login>

ssi:LoginUserAgentResponsible?</ssi:LoginUserAgentResponsible>

ssi:LoginUserBenefited?</ssi:LoginUserBenefited>

ssi:LoginUserRequester?</ssi:LoginUserRequester>

ssi:eeeOrderNumber?</ssi:eeeOrderNumber>

ssi:Parameters

arr:ArrayOfstring

arr:string?</arr:string>
</arr:ArrayOfstring>
</ssi:Parameters>

ssi:Password?</ssi:Password>

ssi:Priority?</ssi:Priority>

ssi:Type?</ssi:Type>

ssi:Urgency?</ssi:Urgency>
</tem:webServiceCreateServiceOrder>
</tem:CreateServiceOrder>
</soap:Body>
</soap:Envelope>

[/code]

[code]HTTP/1.0 415 Unsupported Media Type
Date: Mon, 05 Nov 2012 16:52:34 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 4.0.30319
Cache-Control: private
Content-Length: 0
X-Cache: MISS from blablabla.com.br
Via: 1.0 blablabla.com.br (http_scan/3.1.12.1)
Connection: keep-alive

[/code]

Quando faço a requisição com essa ferramenta da MS que mencionei no início, o ws retorna conforme corretamente.

Entendo que teria que criar o xml conforme meu post inicial. O que te parece?

Estranho, nunca tinha visto isso ocorrer com o SoapUi, mas é isso mesmo que vc falou, se o webservice aceitou aquele envelope é só construir um request igual para obter um response.

vi vc falando do java.xml.soap

Aqui nesse link tem um exemplo de como montar um envelope. Usei uma vez e deu certo.

http://www.java2s.com/Code/Java/JDK-6/CreateSOAPmessage.htm

Se quiser postar também o erro que o soapUi ta retornando…

Abraços.

O erro que retorna quando faço o request pelo SOAPui é esse

HTTP/1.0 415 Unsupported Media Type Date: Mon, 05 Nov 2012 16:52:34 GMT Server: Microsoft-IIS/6.0 X-Powered-By: ASP.NET X-AspNet-Version: 4.0.30319 Cache-Control: private Content-Length: 0 X-Cache: MISS from blablabla.com.br Via: 1.0 blablabla.com.br (http_scan/3.1.12.1) Connection: keep-alive

Já tentei usar o wsimport sem sucesso

C:\root7\var\jar\jaxws-ri\bin>wsimport.bat -d generated http://aaaa.com.br/V5/Integracaoaaa/xxxxxx.svc?wsdl
fazendo parse do WSDL...


[WARNING] unknown extensibility element or attribute "EndpointReference" (in namespace "http://www.w3.org/2005/08/addressing")
  linha 1 de http://aaaaa.com.br/V5/Integracaoeee/sssssn.svc?wsdl

Nov 05, 2012 5:50:23 PM com.sun.istack.tools.ParallelWorldClassLoader findResources
Advert?cia: null
java.net.URISyntaxException: Illegal character in path at index 16: file:/C:/Pro
gram Files/Java/jdk1.7.0/lib/tools.jar
        at java.net.URI$Parser.fail(URI.java:2827)
        at java.net.URI$Parser.checkChars(URI.java:3000)
        at java.net.URI$Parser.parseHierarchical(URI.java:3084)
        at java.net.URI$Parser.parse(URI.java:3032)
        at java.net.URI.<init>(URI.java:595)
        at java.net.URL.toURI(URL.java:936)
        at com.sun.istack.tools.ParallelWorldClassLoader.findResources(ParallelW
orldClassLoader.java:201)
        at java.lang.ClassLoader.getResources(ClassLoader.java:1176)
        at java.lang.ClassLoader.getResources(ClassLoader.java:1172)
        at java.util.ServiceLoader$LazyIterator.hasNext(ServiceLoader.java:340)
        at java.util.ServiceLoader$1.hasNext(ServiceLoader.java:432)
        at com.sun.tools.xjc.Options.findServices(Options.java:965)
        at com.sun.tools.xjc.Options.getAllPlugins(Options.java:383)
        at com.sun.tools.xjc.reader.AbstractExtensionBindingChecker.<init>(Abstr
actExtensionBindingChecker.java:100)
        at com.sun.tools.xjc.reader.ExtensionBindingChecker.<init>(ExtensionBind
ingChecker.java:81)
        at com.sun.tools.xjc.ModelLoader$XMLSchemaParser.parse(ModelLoader.java:
264)
        at com.sun.xml.xsom.impl.parser.NGCCRuntimeEx.parseEntity(NGCCRuntimeEx.
java:347)
        at com.sun.xml.xsom.impl.parser.ParserContext.parse(ParserContext.java:1
28)
        at com.sun.xml.xsom.impl.parser.ParserContext.<init>(ParserContext.java:
100)
        at com.sun.xml.xsom.parser.XSOMParser.<init>(XSOMParser.java:110)
        at com.sun.tools.xjc.ModelLoader.createXSOMParser(ModelLoader.java:437)
        at com.sun.tools.xjc.ModelLoader.createXSOMParser(ModelLoader.java:445)
        at com.sun.tools.xjc.ModelLoader.createXSOM(ModelLoader.java:527)
        at com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompiler
Impl.java:269)
        at com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompiler
Impl.java:95)
        at com.sun.tools.ws.processor.modeler.wsdl.JAXBModelBuilder.bind(JAXBMod
elBuilder.java:142)
        at com.sun.tools.ws.processor.modeler.wsdl.WSDLModeler.buildJAXBModel(WS
DLModeler.java:2244)
        at com.sun.tools.ws.processor.modeler.wsdl.WSDLModeler.internalBuildMode
l(WSDLModeler.java:191)
        at com.sun.tools.ws.processor.modeler.wsdl.WSDLModeler.buildModel(WSDLMo
deler.java:137)
        at com.sun.tools.ws.wscompile.WsimportTool.buildWsdlModel(WsimportTool.j
ava:391)
        at com.sun.tools.ws.wscompile.WsimportTool.run(WsimportTool.java:204)
        at com.sun.tools.ws.wscompile.WsimportTool.run(WsimportTool.java:179)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at com.sun.tools.ws.Invoker.invoke(Invoker.java:135)
        at com.sun.tools.ws.WsImport.main(WsImport.java:57)

[ERROR] Uma classe/interface com o mesmo nome "org.datacontract.schemas._2004._0
7.ssi_core.PersistentObjectOfString" j?est?sendo usada. Use a personaliza??d
e classe para resolver este conflito.
  linha 1 de http://aaaaa.com.br/V5/aaaaaaaaa/eeeeeeeeee.svc?xsd=xsd5

[ERROR] (Relevante para o erro acima) outro "PersistentObjectOfstring" foi gerad
o daqui.
  linha 1 de http://aaaaaa.com.br/V5/eeee/aaaaaaaaaaaaaaa.svc?xsd=xsd5

[ERROR] Este erro foi causado porque no Windows voc?n? pode ter "PersistentObj
ectOfstring.java" e "PersistentObjectOfString.java" no mesmo diret?io.


[ERROR] Uma classe/interface com o mesmo nome "org.datacontract.schemas._2004._0
7.ssi_core.PersistentObjectOfInt" j?est?sendo usada. Use a personaliza??de c
lasse para resolver este conflito.
  linha 1 de http://aaaaaaaaaaa/V5/aaaaaaaa/aaaaaaaaaaaa.svc?xsd=xsd5

[ERROR] (Relevante para o erro acima) outro "PersistentObjectOfint" foi gerado d
aqui.
  linha 1 de http://aaaaaaaaaaa.com.br/V5/eeeeeeee/aaaaaaaaaaaa
aaaaaaaa.svc?xsd=xsd5

[ERROR] Este erro foi causado porque no Windows voc?n? pode ter "PersistentObj
ectOfint.java" e "PersistentObjectOfInt.java" no mesmo diret?io.


[ERROR] Duas declara?? causam uma colis? na classe ObjectFactory.
  linha 1 de http://aaaaaaaaaaaaa.com.br/V5/aaaaaaaaa/eeee
eeee.svc?xsd=xsd3

[ERROR] (Relacionada ao erro acima). Esta ?a outra declara??
  linha 1 de http://aaaaaaaaaa.com.br/V5/eeeeeeee/ee
eeee.svc?xsd=xsd3

[ERROR] Duas declara?? causam uma colis? na classe ObjectFactory.
  linha 1 de http://aaaaaaaaaa.com.br/V5/aaaaaaaaaaa/ee
eeeee.svc?xsd=xsd3

[ERROR] (Relacionada ao erro acima). Esta ?a outra declara??
  linha 1 de http://eeeee.com.br/V5/aaaaaaaa/aa
eee.svc?xsd=xsd3

Exception in thread "main" com.sun.tools.ws.wscompile.AbortException
        at com.sun.tools.ws.processor.modeler.wsdl.JAXBModelBuilder.bind(JAXBMod
elBuilder.java:144)
        at com.sun.tools.ws.processor.modeler.wsdl.WSDLModeler.buildJAXBModel(WS
DLModeler.java:2244)
        at com.sun.tools.ws.processor.modeler.wsdl.WSDLModeler.internalBuildMode
l(WSDLModeler.java:191)
        at com.sun.tools.ws.processor.modeler.wsdl.WSDLModeler.buildModel(WSDLMo
deler.java:137)
        at com.sun.tools.ws.wscompile.WsimportTool.buildWsdlModel(WsimportTool.j
ava:391)
        at com.sun.tools.ws.wscompile.WsimportTool.run(WsimportTool.java:204)
        at com.sun.tools.ws.wscompile.WsimportTool.run(WsimportTool.java:179)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at com.sun.tools.ws.Invoker.invoke(Invoker.java:135)
        at com.sun.tools.ws.WsImport.main(WsImport.java:57)

Estranho, esse erro é mais relacionado a serviços REST. De qualquer maneira, cheque qual o content type que oo soapui está passando e poste aqui.

Segue o request do SOAPui

POST http://127.0.0.1:8888/ HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: application/soap+xml;charset=UTF-8;action="http://tempuri.org/aaa/CreateServiceOrder"
Content-Length: 3117
Host: 127.0.0.1:8888
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:tem="http://tempuri.org/" xmlns:ssi="http://schemas.datacontract.org/2004/07/SSI.Integracaoaaa.Core.Model" xmlns:arr="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
   <soap:Header/>
   <soap:Body>
      <tem:CreateServiceOrder>
         <!--Optional:-->
         <tem:webServiceCreateServiceOrder>
            <!--Optional:-->
            <ssi:BusinessBenefited>a</ssi:BusinessBenefited>
            <!--Optional:-->
            <ssi:Category>b</ssi:Category>
            <!--Optional:-->
            <ssi:CategoryDescription>c</ssi:CategoryDescription>
            <!--Optional:-->
            <ssi:CategorySituation>d</ssi:CategorySituation>
            <!--Optional:-->
            <ssi:CategorySubType>e</ssi:CategorySubType>
            <!--Optional:-->
            <ssi:CategoryType>f</ssi:CategoryType>
            <!--Optional:-->
            <ssi:CodeIntegration>g</ssi:CodeIntegration>
            <!--Optional:-->
            <ssi:Contract>h</ssi:Contract>
            <!--Optional:-->
            <ssi:ContractService>i</ssi:ContractService>
            <!--Optional:-->
            <ssi:ContractServiceCover>j</ssi:ContractServiceCover>
            <!--Optional:-->
            <ssi:DateTimeOfCreation>k</ssi:DateTimeOfCreation>
            <!--Optional:-->
            <ssi:Description>l</ssi:Description>
            <!--Optional:-->
            <ssi:EnvironmentalCondition>m</ssi:EnvironmentalCondition>
            <!--Optional:-->
            <ssi:Equipment>n</ssi:Equipment>
            <!--Optional:-->
            <ssi:ExternalCode>o</ssi:ExternalCode>
            <!--Optional:-->
            <ssi:GroupSolution>p</ssi:GroupSolution>
            <!--Optional:-->
            <ssi:Impact>q</ssi:Impact>
            <!--Optional:-->
            <ssi:IsPreOrder>r</ssi:IsPreOrder>
            <!--Optional:-->
            <ssi:Justify>s</ssi:Justify>
            <!--Optional:-->
            <ssi:Login>t</ssi:Login>
            <!--Optional:-->
            <ssi:LoginUserAgentResponsible>u</ssi:LoginUserAgentResponsible>
            <!--Optional:-->
            <ssi:LoginUserBenefited>v/ssi:LoginUserBenefited>
            <!--Optional:-->
            <ssi:LoginUserRequester>x</ssi:LoginUserRequester>
            <!--Optional:-->
            <ssi:ServiceOrderNumber>y</ssi:ServiceOrderNumber>
            <!--Optional:-->
            <ssi:Parameters>
               <!--Zero or more repetitions:-->
               <arr:ArrayOfstring>
                  <!--Zero or more repetitions:-->
                  <arr:string>z</arr:string>
               </arr:ArrayOfstring>
            </ssi:Parameters>
            <!--Optional:-->
            <ssi:Password>aa</ssi:Password>
            <!--Optional:-->
            <ssi:Priority>bb</ssi:Priority>
            <!--Optional:-->
            <ssi:Type>cc</ssi:Type>
            <!--Optional:-->
            <ssi:Urgency>dd</ssi:Urgency>
         </tem:webServiceCreateServiceOrder>
      </tem:CreateServiceOrder>
   </soap:Body>

Segue o request do WcfTestClient (ferramenta do Visual Studio)

POST http://aaaaaaaaa.com.br/V5/aaa/xxxxIntegration.svc HTTP/1.1
Content-Type: application/soap+msbin1
Host: aaaak.com.br
Content-Length: 1070
Expect: 100-continue
Connection: Keep-Alive

V
s
aVD
&#65533;&#65533;&#65533;9http://tempuri.org/aaa/eeeeServiceOrderD&#65533;&#145;YU
&#65533;@&#65533;&#65533;&#566;J&#65533;&#65533;D,D*&#65533;D&#65533;&#65533;&#65533;Whttp://aaaaaaaaaaaa.com.br/V5/aaaa/eeeen.svcV@CreateServiceOrderhttp://tempuri.org/@webServiceCreateServiceOrder	bHhttp://schemas.datacontract.org/2004/07/SSI.aaaa.Core.Model	i)http://www.w3.org/2001/XMLSchema-instance_BusinessBenefited.nil&#65533;_Category.nil&#65533;_CategoryDescription.nil&#65533;_CategorySituation.nil&#65533;_CategorySubType.nil&#65533;_CategoryType.nil&#65533;_CodeIntegration&#65533;_Contract.nil&#65533;_ContractService.nil&#65533;_ContractServiceCover.nil&#65533;_DateTimeOfCreation&#65533;&#65533;nD&#65533;&#65533;&#65533;_
Description.nil&#65533;_EnvironmentalCondition&#65533;_	Equipment.nil&#65533;_ExternalCode.nil&#65533;_
GroupSolution.nil&#65533;_Impact&#65533;Low_
IsPreOrder&#65533;_aJustify.nil&#65533;_Login.nil&#65533;_LoginUserAgentResponsible.nil&#65533;_LoginUserBenefited.nil&#65533;_LoginUserRequester.nil&#65533;_aaaa&#65533;_
Parameters	c9http://schemas.microsoft.com/2003/10/Serialization/Arrays_Password.nil&#65533;_Priority.nil&#65533;_Type&#65533;Incident_aUrgency&#65533;Low

Bom… como eu disse, nunca ví essa mensagem antes. O erro que você reportou antes (415), em HTTP, é relativo ao content type.

No SoapUI:

application/soap+xml;charset=UTF-8;action="http://tempuri.org/IMoebiusIntegration/CreateServiceOrder"

No WcfTestClient:

Content-Type: application/soap+msbin1

Em ambas as ferramentas, o Content-Type está estranho. No SoapUI, não deveria ter o action. No Wcf, estou com a impressão de que ele está com algum tipo muuuuito estranho de MTOM habilitado, já que parece que ele está mandando um conteúdo binário para o serviço, ao invés de XML puro. Para fazer o teste, tente trocar, no SoapUI, o Content-Type para ver o que acontece. Para fazer isso, é só clicar na aba “Headers” (que está embaixo da tela para montar a requisição) e colocar o Content-Type lá. Eu utilizaria somente application/soap+xml;charset=UTF-8 para ver o que acontece, mas esse cliente que está montado está bem bizarro mesmo (fora do padrão). Não tenho muita idéia do que ele aceita (somente a pista do “msbin1”).

Boa sorte!

[]'s

Obrigado pelas dicas Alexandre.

Está bizarro, mas o dono do serviço afirmou que é um webservice padrão do mercado. E eles não podem alterar a configuração do servidor para trabalhar com application/soap+xml, é preciso enviar a requisição como application/soap+msbin1.

Segue a requisição e a resposta, conforme a alteração do header que você sugeriu.

POST http://aaaaaaaaa/V5/Integracaoeeee/eeee.svc HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: application/soap+xml;charset=UTF-8
Content-Length: 3117
Host: aaaaaa.com.br
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:tem="http://tempuri.org/" xmlns:ssi="http://schemas.datacontract.org/2004/07/SSI.Integracaosssss.Core.Model" xmlns:arr="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
   <soap:Header/>
   <soap:Body>
      <tem:CreateServiceOrder>
         <!--Optional:-->
         <tem:webServiceCreateServiceOrder>
            <!--Optional:-->
            <ssi:BusinessBenefited>a</ssi:BusinessBenefited>
            <!--Optional:-->
            <ssi:Category>b</ssi:Category>
            <!--Optional:-->
            <ssi:CategoryDescription>c</ssi:CategoryDescription>
            <!--Optional:-->
            <ssi:CategorySituation>d</ssi:CategorySituation>
            <!--Optional:-->
            <ssi:CategorySubType>e</ssi:CategorySubType>
            <!--Optional:-->
            <ssi:CategoryType>f</ssi:CategoryType>
            <!--Optional:-->
            <ssi:CodeIntegration>g</ssi:CodeIntegration>
            <!--Optional:-->
            <ssi:Contract>h</ssi:Contract>
            <!--Optional:-->
            <ssi:ContractService>i</ssi:ContractService>
            <!--Optional:-->
            <ssi:ContractServiceCover>j</ssi:ContractServiceCover>
            <!--Optional:-->
            <ssi:DateTimeOfCreation>k</ssi:DateTimeOfCreation>
            <!--Optional:-->
            <ssi:Description>l</ssi:Description>
            <!--Optional:-->
            <ssi:EnvironmentalCondition>m</ssi:EnvironmentalCondition>
            <!--Optional:-->
            <ssi:Equipment>n</ssi:Equipment>
            <!--Optional:-->
            <ssi:ExternalCode>o</ssi:ExternalCode>
            <!--Optional:-->
            <ssi:GroupSolution>p</ssi:GroupSolution>
            <!--Optional:-->
            <ssi:Impact>q</ssi:Impact>
            <!--Optional:-->
            <ssi:IsPreOrder>r</ssi:IsPreOrder>
            <!--Optional:-->
            <ssi:Justify>s</ssi:Justify>
            <!--Optional:-->
            <ssi:Login>t</ssi:Login>
            <!--Optional:-->
            <ssi:LoginUserAgentResponsible>u</ssi:LoginUserAgentResponsible>
            <!--Optional:-->
            <ssi:LoginUserBenefited>v/ssi:LoginUserBenefited>
            <!--Optional:-->
            <ssi:LoginUserRequester>x</ssi:LoginUserRequester>
            <!--Optional:-->
            <ssi:ServiceOrderNumber>y</ssi:ServiceOrderNumber>
            <!--Optional:-->
            <ssi:Parameters>
               <!--Zero or more repetitions:-->
               <arr:ArrayOfstring>
                  <!--Zero or more repetitions:-->
                  <arr:string>z</arr:string>
               </arr:ArrayOfstring>
            </ssi:Parameters>
            <!--Optional:-->
            <ssi:Password>aa</ssi:Password>
            <!--Optional:-->
            <ssi:Priority>bb</ssi:Priority>
            <!--Optional:-->
            <ssi:Type>cc</ssi:Type>
            <!--Optional:-->
            <ssi:Urgency>dd</ssi:Urgency>
         </tem:webServiceCreateServiceOrder>
      </tem:CreateServiceOrder>
   </soap:Body>
</soap:Envelope>

Resposta

HTTP/1.1 415 Cannot process the message because the content type 'application/soap+xml;charset=UTF-8' was not the expected type 'application/soap+msbin1'.
Date: Thu, 08 Nov 2012 00:03:08 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 4.0.30319
Cache-Control: private
Content-Length: 0

Padrão do mercado .NET, só se for =/

O que acontece se você colocar esse header, então, como application/soap+msbin1 e deixar o corpo como XML?

[]'s

Seria bom se desse certo.

Segue um trecho do request

POST http://aaaaaaaaa/V5/eeee/eeee.svc HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: application/soap+msbin1;charset=UTF-8
Content-Length: 3117
Host: aaaaaaaaa.com.br
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:tem="http://tempuri.org/" xmlns:ssi="http://schemas.datacontract.org/2004/07/SSI.eeee.Core.Model" xmlns:arr="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
   <soap:Header/>
   <soap:Body>

Response


HTTP/1.1 400 Bad Request
Date: Thu, 08 Nov 2012 00:15:05 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 4.0.30319
Cache-Control: private
Content-Length: 0

Acabei de fazer uma pesquisa aqui no Google e, de fato, isso é um formato de compressão proprietário da Microsoft. Não há ferramenta Java (ou qualquer outra linguagem) que vá suportar estes serviços. Eu fiz uns testes com o SoapUI (o serviço está aberto), e também não consigo fazer a requisição de jeito nenhum.

O dono do serviço falou que já existem em produção dois usuários desse ws que fizeram seus clientes com java.

Será que mesmo esse projeto metro não dá conta do recado?