diff options
Diffstat (limited to 'sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java')
3 files changed, 14 insertions, 6 deletions
diff --git a/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/protocol/JsonRpc10Request.java b/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/protocol/JsonRpc10Request.java index e4ae943685..82eb6ea2f4 100644 --- a/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/protocol/JsonRpc10Request.java +++ b/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/protocol/JsonRpc10Request.java @@ -80,7 +80,7 @@ public class JsonRpc10Request { } public boolean isNotification() { - return id == null; + return id == null || id == JSONObject.NULL; } public String getMethod() { diff --git a/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/protocol/JsonRpc20Request.java b/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/protocol/JsonRpc20Request.java index 2ee18bcf5a..e73f049545 100644 --- a/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/protocol/JsonRpc20Request.java +++ b/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/protocol/JsonRpc20Request.java @@ -101,7 +101,7 @@ public class JsonRpc20Request { } public boolean isNotification() { - return id == null; + return id == null || id == JSONObject.NULL; } public String getMethod() { diff --git a/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JsonRpcServlet.java b/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JsonRpcServlet.java index 9e4ef8168b..a183d2211c 100644 --- a/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JsonRpcServlet.java +++ b/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JsonRpcServlet.java @@ -165,11 +165,15 @@ public class JsonRpcServlet extends HttpServlet { if (input.has("jsonrpc")) { JsonRpc20Request jsonReq = new JsonRpc20Request(input); JsonRpc20Result jsonResult = invoke(jsonReq); - jsonResult.write(response.getWriter()); + if (jsonResult != null) { + jsonResult.write(response.getWriter()); + } } else { JsonRpc10Request jsonReq = new JsonRpc10Request(input); JsonRpc10Response jsonResult = invoke(jsonReq); - jsonResult.write(response.getWriter()); + if (jsonResult != null) { + jsonResult.write(response.getWriter()); + } } } } catch (Throwable e) { @@ -178,7 +182,9 @@ public class JsonRpcServlet extends HttpServlet { } private JsonRpc20Result invoke(JsonRpc20Request request) throws Exception { - + if (request.isNotification()) { + return null; + } // invoke the request String method = request.getMethod(); Object[] params = request.getParams(); @@ -251,7 +257,9 @@ public class JsonRpcServlet extends HttpServlet { } private JsonRpc10Response invoke(JsonRpc10Request request) throws Exception { - + if (request.isNotification()) { + return null; + } // invoke the request String method = request.getMethod(); Object[] params = request.getParams(); |