JSON-RPC connection from Java server to C# client
I have JSON-RPC server on GAE (Java) width libjsonrpc and client (C#) width lib jayrock. When I call server I have this JSONExeption:


  The server is running at my site
    [WARN] A JSONObject text must begin with '{' at 1 [character 2 line 1]
    org.json.JSONException: A JSONObject text must begin with '{' at 1 [character 2 line 1]
	at org.json.JSONTokener.syntaxError(JSONTokener.java:432)
	at org.json.JSONObject.<init>(JSONObject.java:184)
	at org.json.JSONObject.<init>(JSONObject.java:310)
	at lib.jsonrpc.BasicRPCService.parseJSON(BasicRPCService.java:295)
	at lib.jsonrpc.BasicRPCService.dispatch(BasicRPCService.java:137)
	at ecosoft.jsonrpc.RPCServlet.doPost(RPCServlet.java:69)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
	at     org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
	at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:58)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
	at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
	at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:122)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
	at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:70)
	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
	at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:351)
	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
	at org.mortbay.jetty.Server.handle(Server.java:326)
	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
	at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:938)
	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755)
	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
   
Where is my bug?

This is my src (client side):

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using Jayrock.JsonRpc;
    using System.Collections;
    using Jayrock.Json;
    using System.Net;

    namespace WindowsFormsApplication1
    {
    public partial class Form1 : Form
    {
        
        public Form1()
        {
            InitializeComponent();
            
        }

        private void button1_Click(object sender, EventArgs e)
        {
            JsonRpcClient1 client = new JsonRpcClient1();

            
            client.RequestEncoding = Encoding.UTF8;
            
            client.Url = "http://localhost:8888/jsonrpc";
            MessageBox.Show(client.Invoke("test").ToString());
      
        }
    }
    class JsonRpcClient1 : Jayrock.JsonRpc.JsonRpcClient
    {
        protected override WebRequest GetWebRequest(Uri uri)
        {
            var request = (HttpWebRequest)base.GetWebRequest(uri);
            request.ServicePoint.Expect100Continue = false;
            request.ContentType = "text/json";
            return request;
        }
    }
   }

Server side:

    public class CalcService extends BasicRPCService {
	
	public PGPPdata calc() {
	    PGPPdata data = new PGPPdata();
		data.setD1(2.0d);
		data.setD2(3.0d);
		data.setD(2.0d + 3.0d);
		return data;
	}
	public String test() {
	    return "Ok";
	}
	
    }

 
JSON-RPC connection from Java server to C# client
===

I have JSON-RPC server on GAE (Java) width libjsonrpc and client (C#) width lib jayrock. When I call server I have this JSONExeption:


  The server is running at my site
    [WARN] A JSONObject text must begin with '{' at 1 [character 2 line 1]
    org.json.JSONException: A JSONObject text must begin with '{' at 1 [character 2 line 1]
	at org.json.JSONTokener.syntaxError(JSONTokener.java:432)
	at org.json.JSONObject.<init>(JSONObject.java:184)
	at org.json.JSONObject.<init>(JSONObject.java:310)
	at lib.jsonrpc.BasicRPCService.parseJSON(BasicRPCService.java:295)
	at lib.jsonrpc.BasicRPCService.dispatch(BasicRPCService.java:137)
	at ecosoft.jsonrpc.RPCServlet.doPost(RPCServlet.java:69)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
	at     org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
	at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:58)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
	at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
	at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:122)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
	at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:70)
	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
	at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:351)
	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
	at org.mortbay.jetty.Server.handle(Server.java:326)
	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
	at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:938)
	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755)
	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
   
Where is my bug?

This is my src (client side):

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using Jayrock.JsonRpc;
    using System.Collections;
    using Jayrock.Json;
    using System.Net;

    namespace WindowsFormsApplication1
    {
    public partial class Form1 : Form
    {
        
        public Form1()
        {
            InitializeComponent();
            
        }

        private void button1_Click(object sender, EventArgs e)
        {
            JsonRpcClient1 client = new JsonRpcClient1();

            
            client.RequestEncoding = Encoding.UTF8;
            
            client.Url = "http://localhost:8888/jsonrpc";
            MessageBox.Show(client.Invoke("test").ToString());
      
        }
    }
    class JsonRpcClient1 : Jayrock.JsonRpc.JsonRpcClient
    {
        protected override WebRequest GetWebRequest(Uri uri)
        {
            var request = (HttpWebRequest)base.GetWebRequest(uri);
            request.ServicePoint.Expect100Continue = false;
            request.ContentType = "text/json";
            return request;
        }
    }
   }

Server side:

    public class CalcService extends BasicRPCService {
	
	public PGPPdata calc() {
	    PGPPdata data = new PGPPdata();
		data.setD1(2.0d);
		data.setD2(3.0d);
		data.setD(2.0d + 3.0d);
		return data;
	}
	public String test() {
	    return "Ok";
	}
	
    }

 