summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider
diff options
context:
space:
mode:
authorrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2011-10-10 07:07:31 +0000
committerrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2011-10-10 07:07:31 +0000
commitcd0891e54e0e4e9123f029f3a4f9689c15598337 (patch)
tree48c7e5ee175c2cb47adf4aceb619ddf66072bd06 /sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider
parent5edad53664c23e540bea5ed336bbfa3948bb1035 (diff)
Fix the invoker to serialize the objects to json
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1180795 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider')
-rw-r--r--sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JsonRpcInvoker.java17
1 files changed, 10 insertions, 7 deletions
diff --git a/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JsonRpcInvoker.java b/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JsonRpcInvoker.java
index b3781d88de..efba2ac1ac 100644
--- a/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JsonRpcInvoker.java
+++ b/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JsonRpcInvoker.java
@@ -40,6 +40,7 @@ import org.apache.tuscany.sca.assembly.EndpointReference;
import org.apache.tuscany.sca.binding.jsonrpc.JSONRPCBinding;
import org.apache.tuscany.sca.binding.jsonrpc.protocol.JsonRpc10Request;
import org.apache.tuscany.sca.binding.jsonrpc.protocol.JsonRpc20Request;
+import org.apache.tuscany.sca.binding.jsonrpc.protocol.JsonRpcRequest;
import org.apache.tuscany.sca.databinding.json.JSONDataBinding;
import org.apache.tuscany.sca.databinding.json.jackson.JacksonHelper;
import org.apache.tuscany.sca.interfacedef.DataType;
@@ -92,21 +93,23 @@ public class JsonRpcInvoker implements Invoker, DataExchangeSemantics {
params = (Object[])args;
}
- JSONObject jsonReq = null;
+ JsonRpcRequest req = null;
if (JSONRPCBinding.VERSION_20.equals(((JSONRPCBinding)endpointReference.getBinding()).getVersion())) {
- JsonRpc20Request req = new JsonRpc20Request(requestId, msg.getOperation().getName(), params);
- jsonReq = req.toJSONObject();
+ req = new JsonRpc20Request(requestId, msg.getOperation().getName(), params);
} else {
- JsonRpc10Request req = new JsonRpc10Request(requestId, msg.getOperation().getName(), params);
- jsonReq = req.toJSONObject();
+ req = new JsonRpc10Request(requestId, msg.getOperation().getName(), params);
}
- final String json = jsonReq.toString(4);
+ final JsonRpcRequest json = req;
// Create content producer so that we can stream the json result out
ContentProducer cp = new ContentProducer() {
public void writeTo(OutputStream outstream) throws IOException {
// mapper.writeValue(outstream, req.toJSONObject().toString());
- outstream.write(json.getBytes("UTF-8"));
+ try {
+ json.write(outstream);
+ } catch (Exception e) {
+ throw new IOException(e);
+ }
}
};
entity = new EntityTemplate(cp);