Soap call from Mendix gives javax.xml.ws.soap.SOAPFaultException: Server:XML Parser failed

0
I try to connect to Formdesk for a client using http://www.formdesk.com/api/soap.wsdl From SOAPUI I can make a call (using a specific endpoint including an API-key). Recreating this call in Mendix using 'call webservice action' has been a challenge so far. I have created a mock service based on this WSDL as well, which gives an Internal Server Error when called from Mendix. Calling the Formdesk-API gives the following error.   com.mendix.modules.microflowengine.MicroflowException: javax.xml.ws.soap.SOAPFaultException: Server:XML Parser failed at linenumber 1, lineposition 268, reason is: Names beginning with the three letter sequence x, m, l, in any case combination, are reserved for use by XML and XML-related specifications.      at DeclarationAPI.IVK_TestWebservice (CallWebservice : 'Call web service 'FormResultsGet'') Advanced stacktrace:     at com.mendix.modules.microflowengine.MicroflowUtil.processException(MicroflowUtil.java:143) Caused by: com.mendix.systemwideinterfaces.MendixRuntimeException: javax.xml.ws.soap.SOAPFaultException: Server:XML Parser failed at linenumber 1, lineposition 268, reason is: Names beginning with the three letter sequence x, m, l, in any case combination, are reserved for use by XML and XML-related specifications.      at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:40) Caused by: javax.xml.ws.soap.SOAPFaultException: Server:XML Parser failed at linenumber 1, lineposition 268, reason is: Names beginning with the three letter sequence x, m, l, in any case combination, are reserved for use by XML and XML-related specifications.      at com.sun.xml.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:193)     at com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:126)     at com.sun.xml.ws.client.dispatch.DispatchImpl.doInvoke(DispatchImpl.java:199)     at com.sun.xml.ws.client.dispatch.DispatchImpl.invoke(DispatchImpl.java:218)     at com.mendix.integration.webservices.call.WebserviceCaller$3.run(WebserviceCaller.java:325)     at com.mendix.integration.webservices.call.WebserviceCaller$3.run(WebserviceCaller.java:298)     at java.security.AccessController.doPrivileged(Native Method)     at com.mendix.integration.webservices.call.WebserviceCaller$1.execute(WebserviceCaller.java:262)     at com.mendix.integration.webservices.call.WebserviceCaller$1.execute(WebserviceCaller.java:259)     at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:36)     at com.mendix.util.classloading.Runner$1.run(Runner.java:25)     at java.security.AccessController.doPrivileged(Native Method)     at com.mendix.util.classloading.Runner.runUsingClassLoaderOf(Runner.java:21)     at com.mendix.integration.webservices.call.WebserviceCaller.call(WebserviceCaller.java:267)     at com.mendix.integration.webservices.call.WebserviceCaller.call(WebserviceCaller.java:129)     at com.mendix.integration.webservices.WebserviceModuleImpl.callWebservice(WebserviceModuleImpl.java:207)     at com.mendix.integration.internal.InternalIntegrationImpl.callWebservice(InternalIntegrationImpl.scala:333)     at com.mendix.integration.actions.microflow.WebServiceCallAction.execute(WebServiceCallAction.scala:102)     at com.mendix.modules.microflowengine.microflow.impl.MicroflowObject.execute(MicroflowObject.java:47)     at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAfterBreakingIfNecessary(MicroflowImpl.java:192)     at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAction(MicroflowImpl.java:149)     at com.mendix.systemwideinterfaces.core.UserAction.execute(UserAction.java:49)     at com.mendix.core.actionmanagement.CoreAction.doCall(CoreAction.java:260)     at com.mendix.core.actionmanagement.CoreAction.call(CoreAction.java:248)     at com.mendix.core.actionmanagement.ActionManager$1.execute(ActionManager.java:168)     at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:36)     at com.mendix.core.actionmanagement.ActionManager.executeSync(ActionManager.java:172)     at com.mendix.core.component.InternalCore.execute(InternalCore.java:414)     at com.mendix.webui.actions.client.ExecuteAction.execute(ExecuteAction.java:144)     at com.mendix.webui.requesthandling.ClientRequestHandler$$anonfun$handleRequest$1.apply$mcV$sp(ClientRequestHandler.scala:311)     at com.mendix.webui.requesthandling.ClientRequestHandler$$anonfun$handleRequest$1.apply(ClientRequestHandler.scala:301)     at com.mendix.webui.requesthandling.ClientRequestHandler$$anonfun$handleRequest$1.apply(ClientRequestHandler.scala:301)     at com.mendix.core.session.Worker$$anonfun$receive$3$$anonfun$2$$anon$1.execute(ActionDispatching.scala:143)     at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:36)     at com.mendix.core.session.Worker$$anonfun$receive$3$$anonfun$2.apply(ActionDispatching.scala:145)     at scala.util.Try$.apply(Try.scala:192)     at com.mendix.core.session.Worker$$anonfun$receive$3.applyOrElse(ActionDispatching.scala:139)     at akka.actor.Actor$class.aroundReceive(Actor.scala:465)     at com.mendix.core.session.Worker.aroundReceive(ActionDispatching.scala:135)     at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516)     at akka.actor.ActorCell.invoke(ActorCell.scala:487)     at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:238)     at akka.dispatch.Mailbox.run(Mailbox.scala:220)     at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:393)     at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)     at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)     at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)     at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)   I have also tried to call this webservice through Java, in which I succeeded, both on the mock server and the FD endpoint. However, it means I have to take care of escaping and parsing manually, which I don't want to do of course. Why does Mendix action reacts differently from Java, and/or what does above error mean? Edit: sample respons captured from SOAPUI <SOAP-ENV:Envelope xmlns:SOAPSDK1="http://www.w3.org/2001/XMLSchema" xmlns:SOAPSDK2="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAPSDK3="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAPSDK4:FormResultsGetResponse xmlns:SOAPSDK4="http://tempuri.org/message/"> <Result><![CDATA[<result xmlns:fd="urn:formdesk:attributes"> <status fd:dt="int">200</status> <credits fd:dt="int">-6734</credits> <value fd:dt="xml"> <results> <result fd:id="XXXXX"> <_fd_id fd:dt="int">XXXXX</_fd_id> </result> <result fd:id="XXXXX"> <_fd_id fd:dt="int">XXXXX</_fd_id> </result> </results> </value> </result>]]></Result> </SOAPSDK4:FormResultsGetResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>  
asked
3 answers
2

The targetnamespace in the schema points to "http://tempuri.org/wsdl/", but the operation specify namespace "http://tempuri.org/message/". This is likely something that we haven't support in Mendix yet. However, by changing the targetnamespace, you should be able to communicate with the service via simple mapping or export mapping (see code snippet for the modified wsdl). This is definitely a temporary solution.

 

<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated 05/19/15 by Microsoft SOAP Toolkit WSDL File Generator, Version 3.00.1325.0 -->
<definitions name="soap" targetNamespace="http://tempuri.org/message/" xmlns:wsdlns="http://tempuri.org/message/" xmlns:typens="http://tempuri.org/type" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:stk="http://schemas.microsoft.com/soap-toolkit/wsdl-extension" xmlns:dime="http://schemas.xmlsoap.org/ws/2002/04/dime/wsdl/" xmlns:ref="http://schemas.xmlsoap.org/ws/2002/04/reference/" xmlns:content="http://schemas.xmlsoap.org/ws/2002/04/content-type/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/">

	<types>
		<schema targetNamespace="http://tempuri.org/type" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" elementFormDefault="qualified">

			<import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
			<import namespace="http://schemas.xmlsoap.org/wsdl/"/>
			<import namespace="http://schemas.xmlsoap.org/ws/2002/04/reference/"/>
			<import namespace="http://schemas.xmlsoap.org/ws/2002/04/content-type/"/>

		</schema>
	</types>

	<message name="SoapServer.Ping">
	</message>

	<message name="SoapServer.PingResponse">
		<part name="Result" type="xsd:string"/>
	</message>

	<message name="SoapServer.Import">
		<part name="ImportXml" type="xsd:string"/>
		<part name="Params" type="xsd:string"/>
	</message>

	<message name="SoapServer.ImportResponse">
		<part name="Result" type="xsd:string"/>
	</message>

	<message name="SoapServer.VisitorResultsGet">
		<part name="VisitorID" type="xsd:int"/>
		<part name="Params" type="xsd:string"/>
	</message>

	<message name="SoapServer.VisitorResultsGetResponse">
		<part name="Result" type="xsd:string"/>
	</message>

	<message name="SoapServer.VisitorAuthenticate">
		<part name="Username" type="xsd:string"/>
		<part name="Password" type="xsd:string"/>
		<part name="Params" type="xsd:string"/>
	</message>

	<message name="SoapServer.VisitorAuthenticateResponse">
		<part name="Result" type="xsd:string"/>
	</message>

	<message name="SoapServer.VisitorRemove">
		<part name="VisitorID" type="xsd:int"/>
		<part name="Params" type="xsd:string"/>
	</message>

	<message name="SoapServer.VisitorRemoveResponse">
		<part name="Result" type="xsd:string"/>
	</message>

	<message name="SoapServer.VisitorUpdate">
		<part name="VisitorID" type="xsd:int"/>
		<part name="Data" type="xsd:string"/>
		<part name="Params" type="xsd:string"/>
	</message>

	<message name="SoapServer.VisitorUpdateResponse">
		<part name="Result" type="xsd:string"/>
	</message>

	<message name="SoapServer.VisitorAdd">
		<part name="Data" type="xsd:string"/>
		<part name="Params" type="xsd:string"/>
	</message>

	<message name="SoapServer.VisitorAddResponse">
		<part name="Result" type="xsd:string"/>
	</message>

	<message name="SoapServer.VisitorsGet">
		<part name="Params" type="xsd:string"/>
	</message>

	<message name="SoapServer.VisitorsGetResponse">
		<part name="Result" type="xsd:string"/>
	</message>

	<message name="SoapServer.Park">
		<part name="Data" type="xsd:string"/>
		<part name="Expires" type="xsd:int"/>
		<part name="Params" type="xsd:string"/>
	</message>

	<message name="SoapServer.ParkResponse">
		<part name="Result" type="xsd:string"/>
	</message>

	<message name="SoapServer.FileGet">
		<part name="Data" type="xsd:string"/>
		<part name="Params" type="xsd:string"/>
	</message>

	<message name="SoapServer.FileGetResponse">
		<part name="Result" type="xsd:string"/>
	</message>

	<message name="SoapServer.FormFiltersGet">
		<part name="FormName" type="xsd:string"/>
		<part name="Params" type="xsd:string"/>
	</message>

	<message name="SoapServer.FormFiltersGetResponse">
		<part name="Result" type="xsd:string"/>
	</message>

	<message name="SoapServer.FormResultPdfGet">
		<part name="ResultID" type="xsd:int"/>
		<part name="Params" type="xsd:string"/>
	</message>

	<message name="SoapServer.FormResultPdfGetResponse">
		<part name="Result" type="xsd:anyType"/>
	</message>

	<message name="SoapServer.FormResultsExport">
		<part name="FormName" type="xsd:string"/>
		<part name="Format" type="xsd:string"/>
		<part name="Params" type="xsd:string"/>
	</message>

	<message name="SoapServer.FormResultsExportResponse">
		<part name="Result" type="xsd:anyType"/>
	</message>

	<message name="SoapServer.FormResultProcessed">
		<part name="ResultID" type="xsd:int"/>
		<part name="Params" type="xsd:string"/>
	</message>

	<message name="SoapServer.FormResultProcessedResponse">
		<part name="Result" type="xsd:string"/>
	</message>

	<message name="SoapServer.FormResultRemove">
		<part name="ResultID" type="xsd:int"/>
		<part name="Params" type="xsd:string"/>
	</message>

	<message name="SoapServer.FormResultRemoveResponse">
		<part name="Result" type="xsd:string"/>
	</message>

	<message name="SoapServer.FormResultUpdate">
		<part name="ResultID" type="xsd:int"/>
		<part name="Data" type="xsd:string"/>
		<part name="Params" type="xsd:string"/>
	</message>

	<message name="SoapServer.FormResultUpdateResponse">
		<part name="Result" type="xsd:string"/>
	</message>

	<message name="SoapServer.FormResultAdd">
		<part name="FormName" type="xsd:string"/>
		<part name="Data" type="xsd:string"/>
		<part name="Params" type="xsd:string"/>
	</message>

	<message name="SoapServer.FormResultAddResponse">
		<part name="Result" type="xsd:string"/>
	</message>

	<message name="SoapServer.FormResultGet">
		<part name="ResultID" type="xsd:int"/>
		<part name="Params" type="xsd:string"/>
	</message>

	<message name="SoapServer.FormResultGetResponse">
		<part name="Result" type="xsd:string"/>
	</message>

	<message name="SoapServer.FormResultsGet">
		<part name="FormName" type="xsd:string"/>
		<part name="Params" type="xsd:string"/>
	</message>

	<message name="SoapServer.FormResultsGetResponse">
		<part name="Result" type="xsd:string"/>
	</message>

	<message name="SoapServer.FormItemsGet">
		<part name="FormName" type="xsd:string"/>
		<part name="Params" type="xsd:string"/>
	</message>

	<message name="SoapServer.FormItemsGetResponse">
		<part name="Result" type="xsd:string"/>
	</message>

	<message name="SoapServer.FormsGet">
		<part name="Params" type="xsd:string"/>
	</message>

	<message name="SoapServer.FormsGetResponse">
		<part name="Result" type="xsd:string"/>
	</message>

	<message name="SoapServer.ListGet">
		<part name="List" type="xsd:string"/>
		<part name="Params" type="xsd:string"/>
	</message>

	<message name="SoapServer.ListGetResponse">
		<part name="Result" type="xsd:string"/>
	</message>

	<message name="SoapServer.SignOn">
		<part name="Data" type="xsd:string"/>
		<part name="Params" type="xsd:string"/>
	</message>

	<message name="SoapServer.SignOnResponse">
		<part name="Result" type="xsd:string"/>
	</message>

	<message name="SoapServer.Connect">
		<part name="Params" type="xsd:string"/>
	</message>

	<message name="SoapServer.ConnectResponse">
		<part name="Result" type="xsd:string"/>
	</message>

	<portType name="SoapServerSoapPort">

		<operation name="Ping" parameterOrder="">
			<input message="wsdlns:SoapServer.Ping"/>
			<output message="wsdlns:SoapServer.PingResponse"/>
		</operation>

		<operation name="Import" parameterOrder="ImportXml Params">
			<input message="wsdlns:SoapServer.Import"/>
			<output message="wsdlns:SoapServer.ImportResponse"/>
		</operation>

		<operation name="VisitorResultsGet" parameterOrder="VisitorID Params">
			<input message="wsdlns:SoapServer.VisitorResultsGet"/>
			<output message="wsdlns:SoapServer.VisitorResultsGetResponse"/>
		</operation>

		<operation name="VisitorAuthenticate" parameterOrder="Username Password Params">
			<input message="wsdlns:SoapServer.VisitorAuthenticate"/>
			<output message="wsdlns:SoapServer.VisitorAuthenticateResponse"/>
		</operation>

		<operation name="VisitorRemove" parameterOrder="VisitorID Params">
			<input message="wsdlns:SoapServer.VisitorRemove"/>
			<output message="wsdlns:SoapServer.VisitorRemoveResponse"/>
		</operation>

		<operation name="VisitorUpdate" parameterOrder="VisitorID Data Params">
			<input message="wsdlns:SoapServer.VisitorUpdate"/>
			<output message="wsdlns:SoapServer.VisitorUpdateResponse"/>
		</operation>

		<operation name="VisitorAdd" parameterOrder="Data Params">
			<input message="wsdlns:SoapServer.VisitorAdd"/>
			<output message="wsdlns:SoapServer.VisitorAddResponse"/>
		</operation>

		<operation name="VisitorsGet" parameterOrder="Params">
			<input message="wsdlns:SoapServer.VisitorsGet"/>
			<output message="wsdlns:SoapServer.VisitorsGetResponse"/>
		</operation>

		<operation name="Park" parameterOrder="Data Expires Params">
			<input message="wsdlns:SoapServer.Park"/>
			<output message="wsdlns:SoapServer.ParkResponse"/>
		</operation>

		<operation name="FileGet" parameterOrder="Data Params">
			<input message="wsdlns:SoapServer.FileGet"/>
			<output message="wsdlns:SoapServer.FileGetResponse"/>
		</operation>

		<operation name="FormFiltersGet" parameterOrder="FormName Params">
			<input message="wsdlns:SoapServer.FormFiltersGet"/>
			<output message="wsdlns:SoapServer.FormFiltersGetResponse"/>
		</operation>

		<operation name="FormResultPdfGet" parameterOrder="ResultID Params">
			<input message="wsdlns:SoapServer.FormResultPdfGet"/>
			<output message="wsdlns:SoapServer.FormResultPdfGetResponse"/>
		</operation>

		<operation name="FormResultsExport" parameterOrder="FormName Format Params">
			<input message="wsdlns:SoapServer.FormResultsExport"/>
			<output message="wsdlns:SoapServer.FormResultsExportResponse"/>
		</operation>

		<operation name="FormResultProcessed" parameterOrder="ResultID Params">
			<input message="wsdlns:SoapServer.FormResultProcessed"/>
			<output message="wsdlns:SoapServer.FormResultProcessedResponse"/>
		</operation>

		<operation name="FormResultRemove" parameterOrder="ResultID Params">
			<input message="wsdlns:SoapServer.FormResultRemove"/>
			<output message="wsdlns:SoapServer.FormResultRemoveResponse"/>
		</operation>

		<operation name="FormResultUpdate" parameterOrder="ResultID Data Params">
			<input message="wsdlns:SoapServer.FormResultUpdate"/>
			<output message="wsdlns:SoapServer.FormResultUpdateResponse"/>
		</operation>

		<operation name="FormResultAdd" parameterOrder="FormName Data Params">
			<input message="wsdlns:SoapServer.FormResultAdd"/>
			<output message="wsdlns:SoapServer.FormResultAddResponse"/>
		</operation>

		<operation name="FormResultGet" parameterOrder="ResultID Params">
			<input message="wsdlns:SoapServer.FormResultGet"/>
			<output message="wsdlns:SoapServer.FormResultGetResponse"/>
		</operation>

		<operation name="FormResultsGet" parameterOrder="FormName Params">
			<input message="wsdlns:SoapServer.FormResultsGet"/>
			<output message="wsdlns:SoapServer.FormResultsGetResponse"/>
		</operation>

		<operation name="FormItemsGet" parameterOrder="FormName Params">
			<input message="wsdlns:SoapServer.FormItemsGet"/>
			<output message="wsdlns:SoapServer.FormItemsGetResponse"/>
		</operation>

		<operation name="FormsGet" parameterOrder="Params">
			<input message="wsdlns:SoapServer.FormsGet"/>
			<output message="wsdlns:SoapServer.FormsGetResponse"/>
		</operation>

		<operation name="ListGet" parameterOrder="List Params">
			<input message="wsdlns:SoapServer.ListGet"/>
			<output message="wsdlns:SoapServer.ListGetResponse"/>
		</operation>

		<operation name="SignOn" parameterOrder="Data Params">
			<input message="wsdlns:SoapServer.SignOn"/>
			<output message="wsdlns:SoapServer.SignOnResponse"/>
		</operation>

		<operation name="Connect" parameterOrder="Params">
			<input message="wsdlns:SoapServer.Connect"/>
			<output message="wsdlns:SoapServer.ConnectResponse"/>
		</operation>

	</portType>

	<binding name="SoapServerSoapBinding" type="wsdlns:SoapServerSoapPort">

		<stk:binding preferredEncoding="UTF-8"/>
		<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>

		<operation name="Ping">
			<soap:operation soapAction="http://tempuri.org/action/SoapServer.Ping"/>
			<input>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</input>
			<output>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="Result"/>
			</output>
		</operation>

		<operation name="Import">
			<soap:operation soapAction="http://tempuri.org/action/SoapServer.Import"/>
			<input>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="ImportXml Params"/>
			</input>
			<output>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="Result"/>
			</output>
		</operation>

		<operation name="VisitorResultsGet">
			<soap:operation soapAction="http://tempuri.org/action/SoapServer.VisitorResultsGet"/>
			<input>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="VisitorID Params"/>
			</input>
			<output>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="Result"/>
			</output>
		</operation>

		<operation name="VisitorAuthenticate">
			<soap:operation soapAction="http://tempuri.org/action/SoapServer.VisitorAuthenticate"/>
			<input>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="Username Password Params"/>
			</input>
			<output>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="Result"/>
			</output>
		</operation>

		<operation name="VisitorRemove">
			<soap:operation soapAction="http://tempuri.org/action/SoapServer.VisitorRemove"/>
			<input>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="VisitorID Params"/>
			</input>
			<output>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="Result"/>
			</output>
		</operation>

		<operation name="VisitorUpdate">
			<soap:operation soapAction="http://tempuri.org/action/SoapServer.VisitorUpdate"/>
			<input>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="VisitorID Data Params"/>
			</input>
			<output>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="Result"/>
			</output>
		</operation>

		<operation name="VisitorAdd">
			<soap:operation soapAction="http://tempuri.org/action/SoapServer.VisitorAdd"/>
			<input>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="Data Params"/>
			</input>
			<output>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="Result"/>
			</output>
		</operation>

		<operation name="VisitorsGet">
			<soap:operation soapAction="http://tempuri.org/action/SoapServer.VisitorsGet"/>
			<input>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="Params"/>
			</input>
			<output>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="Result"/>
			</output>
		</operation>

		<operation name="Park">
			<soap:operation soapAction="http://tempuri.org/action/SoapServer.Park"/>
			<input>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="Data Expires Params"/>
			</input>
			<output>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="Result"/>
			</output>
		</operation>

		<operation name="FileGet">
			<soap:operation soapAction="http://tempuri.org/action/SoapServer.FileGet"/>
			<input>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="Data Params"/>
			</input>
			<output>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="Result"/>
			</output>
		</operation>

		<operation name="FormFiltersGet">
			<soap:operation soapAction="http://tempuri.org/action/SoapServer.FormFiltersGet"/>
			<input>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="FormName Params"/>
			</input>
			<output>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="Result"/>
			</output>
		</operation>

		<operation name="FormResultPdfGet">
			<soap:operation soapAction="http://tempuri.org/action/SoapServer.FormResultPdfGet"/>
			<input>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="ResultID Params"/>
			</input>
			<output>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="Result"/>
			</output>
		</operation>

		<operation name="FormResultsExport">
			<soap:operation soapAction="http://tempuri.org/action/SoapServer.FormResultsExport"/>
			<input>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="FormName Format Params"/>
			</input>
			<output>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="Result"/>
			</output>
		</operation>

		<operation name="FormResultProcessed">
			<soap:operation soapAction="http://tempuri.org/action/SoapServer.FormResultProcessed"/>
			<input>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="ResultID Params"/>
			</input>
			<output>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="Result"/>
			</output>
		</operation>

		<operation name="FormResultRemove">
			<soap:operation soapAction="http://tempuri.org/action/SoapServer.FormResultRemove"/>
			<input>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="ResultID Params"/>
			</input>
			<output>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="Result"/>
			</output>
		</operation>

		<operation name="FormResultUpdate">
			<soap:operation soapAction="http://tempuri.org/action/SoapServer.FormResultUpdate"/>
			<input>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="ResultID Data Params"/>
			</input>
			<output>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="Result"/>
			</output>
		</operation>

		<operation name="FormResultAdd">
			<soap:operation soapAction="http://tempuri.org/action/SoapServer.FormResultAdd"/>
			<input>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="FormName Data Params"/>
			</input>
			<output>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="Result"/>
			</output>
		</operation>

		<operation name="FormResultGet">
			<soap:operation soapAction="http://tempuri.org/action/SoapServer.FormResultGet"/>
			<input>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="ResultID Params"/>
			</input>
			<output>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="Result"/>
			</output>
		</operation>

		<operation name="FormResultsGet">
			<soap:operation soapAction="http://tempuri.org/action/SoapServer.FormResultsGet"/>
			<input>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="FormName Params"/>
			</input>
			<output>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="Result"/>
			</output>
		</operation>

		<operation name="FormItemsGet">
			<soap:operation soapAction="http://tempuri.org/action/SoapServer.FormItemsGet"/>
			<input>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="FormName Params"/>
			</input>
			<output>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="Result"/>
			</output>
		</operation>

		<operation name="FormsGet">
			<soap:operation soapAction="http://tempuri.org/action/SoapServer.FormsGet"/>
			<input>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="Params"/>
			</input>
			<output>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="Result"/>
			</output>
		</operation>

		<operation name="ListGet">
			<soap:operation soapAction="http://tempuri.org/action/SoapServer.ListGet"/>
			<input>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="List Params"/>
			</input>
			<output>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="Result"/>
			</output>
		</operation>

		<operation name="SignOn">
			<soap:operation soapAction="http://tempuri.org/action/SoapServer.SignOn"/>
			<input>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="Data Params"/>
			</input>
			<output>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="Result"/>
			</output>
		</operation>

		<operation name="Connect">
			<soap:operation soapAction="http://tempuri.org/action/SoapServer.Connect"/>
			<input>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="Params"/>
			</input>
			<output>
				<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" parts="Result"/>
			</output>
		</operation>

	</binding>

	<service name="soap">
		<port name="SoapServerSoapPort" binding="wsdlns:SoapServerSoapBinding">
			<soap:address location="http://test.formdesk.net/soap.ASP"/>
		</port>
	</service>

</definitions>

 

answered
2

Try to disable the `send as attachment (MTOM)` feature in webservice document. It seems that xml namespace is generated when MTOM is enabled.

answered
0

Ok, I built my own webserver in order to capture the requests that are being sent.

Generated with Java: 

Method: POST
Headers: 
	Connection: Keep-Alive
	Host: localhost
	User-agent: Apache-HttpClient/4.3.6 (java 1.5)
	Content-type: text/xml; charset=UTF-8
	Soapaction: http://tempuri.org/action/SoapServer.FormResultsGet
	Content-length: 495
Request: 
<?xml version="1.0"?>
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mes="http://tempuri.org/message/">
	<soapenv:Header/>
	<soapenv:Body>
		<mes:FormResultsGet soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
			<FormName xsi:type="xsd:string">form1</FormName>
			<Params xsi:type="xsd:string"/>
		</mes:FormResultsGet>
	</soapenv:Body>
</soapenv:Envelope>

Generated by Mendix, using custom request template:

Method: POST
Headers: 
	Accept: text/xml, multipart/related
	Connection: keep-alive
	Host: localhost:8088
	User-agent: Metro/2.1 (branches/2.1-6728; 2011-02-03T14:14:58+0000) JAXWS-RI/2.2.3 JAXWS/2.2
	Content-type: text/xml; charset=utf-8
	Soapaction: "http://tempuri.org/action/SoapServer.FormResultsGet"
	Content-length: 644
Request: 
<?xml version='1.0' encoding='UTF-8'?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
	<S:Body>
		<mes:FormResultsGet xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mes="http://tempuri.org/message/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xml="http://www.w3.org/XML/1998/namespace" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
			<FormName xsi:type="xsd:string">form1</FormName>
			<Params xsi:type="xsd:string" />
		</mes:FormResultsGet>
	</S:Body>
</S:Envelope>

Generated by Mendix, using simple expressions for each request parameter:

Method: POST
Headers: 
	Accept: text/xml, multipart/related
	Connection: keep-alive
	Host: localhost:8088
	User-agent: Metro/2.1 (branches/2.1-6728; 2011-02-03T14:14:58+0000) JAXWS-RI/2.2.3 JAXWS/2.2
	Content-type: text/xml; charset=utf-8
	Soapaction: "http://tempuri.org/action/SoapServer.FormResultsGet"
	Content-length: 657
Request: 
<?xml version='1.0' encoding='UTF-8'?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
	<S:Body>
		<ns1:FormResultsGet xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tempuri.org/wsdl/" xmlns:xml="http://www.w3.org/XML/1998/namespace">
			<FormName xmlns:axis2ns1="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="http://www.w3.org/2001/XMLSchema:string">form1</FormName>
			<Params xmlns:axis2ns2="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="http://www.w3.org/2001/XMLSchema:string" />
		</ns1:FormResultsGet>
	</S:Body>
</S:Envelope>

Generated by Mendix, using export mapping for entire request:

<?xml version='1.0' encoding='UTF-8'?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
	<S:Body>
		<ns1:FormResultsGet xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tempuri.org/wsdl/" xmlns:xml="http://www.w3.org/XML/1998/namespace">
			<FormName>form1</FormName>
			<Params />
		</ns1:FormResultsGet>
	</S:Body>
</S:Envelope>

When I send the first message to the Formdesk server using SOAPUI, I get a nice response.

When I send the second, third or fourth message to the FD server using SOAPUI, I get the error as stated above

What difference is it that causes the error thrown by FD?

I am guessing it is 

xmlns:xml="http://www.w3.org/XML/1998/namespace"

but I am not sure why Mendix puts it there.

Note that when I remove that part from the message before sending it from SOAPUI, the second message does provide a valid response, while the third and fourth still gives an error:

WSDLReader:None of the matching operations for soapAction http://tempuri.org/action/SoapServer.FormResultsGet could successfully load the incoming request. Potential typemapper problem HRESULT=0x80070057: The parameter is incorrect.

 

answered