Invalid code generation for rpc style SoapBindings
bofur opened this issue · comments
bofur commented
There is some wsdl snippet for example:
<wsdl:message name="ProcessTransactionResponse">
<wsdl:part name="ResponseData" type="impl:ResponseDataType"/>
</wsdl:message>
Here is generated code:
trait SoapBindings { this: scalaxb.Soap11ClientsAsync =>
lazy val targetNamespace: Option[String] = Some("http://example.com")
lazy val service: com.exmple.Port = new SoapBinding {}
def baseAddress = new java.net.URI("http://example.com")
trait SoapBinding extends Port {
import scalaxb.ElemName._
def processTransaction(requestData: com.example.RequestDataType)(implicit ec: ExecutionContext): Future[ com.example.ResponseDataType] =
soapClient.requestResponse(scala.xml.Elem(targetNamespace map {defaultScope.getPrefix(_)} getOrElse {""}, "ProcessTransaction", scala.xml.Null, defaultScope, true,
scalaxb.toXML(requestData, Some("http://examl.co"), "equestData", defaultScope): _*),
Nil, defaultScope, baseAddress, "POST", Some(new java.net.URI("urn:%23ProcessTransaction"))).transform({ case (header, body) =>
scalaxb.fromXML[com.example.ResponseDataType]((body.head \ "responseData").head, Nil) }, {
case x => x
})
}
}
We have ResponseData
in scheme, but responseData
in generated code. So, (body.head \ "responseData")
return empty NodeSeq
Camel case conversation have been added in this request.