Skip to Main Content

Integration

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Invoking BPEL from c# .NET returns empty value

431235Nov 24 2004 — edited Nov 30 2004
Hi,

I'm invoking a very simple BPEL process using c# .NET, but the process seems to return an empty string as return value (also, the input seems to be empty as well). The process works fine from both the BPEL console and a Java client using Axis.

The process is as follows:
**************************************************

<process name="SyncHello" targetNamespace="http://tutorial.oracle.com" suppressJoinFailure="yes" xmlns:tns="http://tutorial.oracle.com" xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:bpelx="http://schemas.oracle.com/bpel/extension" xmlns:ora="http://schemas.oracle.com/xpath/extension" xmlns:cx="http://schemas.collaxa.com/xpath/extension">

<!-- List of services participating in this BPEL process -->
<partnerLinks>

<partnerLink name="client" partnerLinkType="tns:SyncHello" myRole="SyncHelloProvider"/>
</partnerLinks>

<variables>
<variable name="input" messageType="tns:SyncHelloRequestMessage"/>

<variable name="output" messageType="tns:SyncHelloResponseMessage"/>
</variables>

<sequence>

<receive name="receiveInput" partnerLink="client" portType="tns:SyncHello" operation="process" variable="input" createInstance="yes"/>

<assign>
<copy>
<from expression="concat('some','thing')"/>
<to variable="output" part="payload" query="/rating"/>
</copy>
</assign>

<reply name="replyOutput" partnerLink="client" portType="tns:SyncHello" operation="process" variable="output"/>
</sequence>

</process>

*********************************************
The c# code (proxy) is as follows. The process(...) method is then simply called by another c# class which prints out the return value. This return value is an empty string
*********************************************

using System.Diagnostics;
using System.Xml.Serialization;
using System;
using System.Web.Services.Protocols;
using System.ComponentModel;
using System.Web.Services;


/// <remarks/>
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Web.Services.WebServiceBindingAttribute(Name="SyncHelloSoapBinding", Namespace="http://tutorial.oracle.com")]
public class SyncHelloService : System.Web.Services.Protocols.SoapHttpClientProtocol {

/// <remarks/>
public SyncHelloService() {
this.Url = "http://localhost:9700/orabpel/default/SyncHello";
}

/// <remarks/>
[System.Web.Services.Protocols.SoapRpcMethodAttribute("", RequestNamespace="http://DefaultNamespace", ResponseNamespace="http://tutorial.oracle.com")]
[return: System.Xml.Serialization.SoapElementAttribute("saveFileReturn")]
public string process(string fileInBase64) {
object[] results = this.Invoke("process", new object[] {
fileInBase64});
return ((string)(results[0]));
}

/// <remarks/>
public System.IAsyncResult Beginprocess(string fileInBase64, System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("process", new object[] {
fileInBase64}, callback, asyncState);
}

/// <remarks/>
public string Endprocess(System.IAsyncResult asyncResult) {
object[] results = this.EndInvoke(asyncResult);
return ((string)(results[0]));
}
}

*****************************************
NOTE: the code successfully reaches the BPEL process. I've put some java code in a <bpel:exec> to print out to the screen and this works fine. The only problem is that the input and output values to/from the BPEL process are empty
*****************************************

Any help would be greatly appreciated,
Thanks
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Dec 28 2004
Added on Nov 24 2004
5 comments
501 views