Drools, Eclipse, Tomcat, and WCF are all new to me, so I may be missing something obvious. Questions at the bottom, after the problem description.
I deployed the Drools Camel Server WAR file in a Tomcat 7 server I'm running within Eclipse under Windows 7. Using Visual Studio 2013 and System.ServiceModel 4.0.0.0 I generated a client from the WSDL. I fixed a problem with serialization and am getting an error on deserialization. The inner exception says "End element 'return' from namespace 'http://soap.jax.drools.org/' expected. Found text '<'. Line 1, position 189."
<xsd:element name="executeResponse" type="tns:executeResponse"/>
<xsd:complexType name="executeResponse">
<xsd:sequence>
<xsd:element name="return" type="xsd:anyType" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
I am unable to convince the Visual Studio debugger to show me the text it is trying to deserialize. But a colleague used another tool to get a copy of the message body and it seems in addition to "return" there is a "fact-handle". (This is the weak link in the evidence chain; I didn't redo this today.) (The "Hello:" text is what Drools is indeed sending. I changed the original
drl file.)
<?xml version='1.0' encoding='UTF-8'?>
<execution-results>
<result identifier="person1">
<org.drools.server.Message><text>Hello:</text></org.drools.server.Message>
</result>
<fact-handle identifier="person1"
external-form="0:1:427239608:427239608:1:DEFAULT:NON_TRAIT"/>
</execution-results>
Question1: Is the fact-handle element likely to be the cause of .NET's deserialization error?
Question 2: If so, what would I do, and where, to
fix the problem? Does the WSDL need to be different? Does fact-handle need to be omitted? Does some .NET option need to be changed?
Question 3: If that's not the cause, how can I identify the real problem?
Thanks in advance,
Clark Wilson