Package er.ajax.json.client

Source Code of er.ajax.json.client.JavaJSONClient

package er.ajax.json.client;

import java.lang.reflect.Field;

import org.jabsorb.JSONSerializer;
import org.jabsorb.client.Client;
import org.jabsorb.client.HTTPSession;
import org.jabsorb.client.TransportRegistry;

import er.ajax.json.serializer.ERXConstantSerializer;
import er.ajax.json.serializer.JSONEnterpriseObjectSerializer;
import er.ajax.json.serializer.NSArraySerializer;
import er.ajax.json.serializer.NSDataSerializer;
import er.ajax.json.serializer.NSDictionarySerializer;
import er.ajax.json.serializer.NSTimestampSerializer;

/**
* If you are trying to communicate with a WO JSON server from another Java app, JavaJSONClient provides a factory for
* creating the appropiate JSON Client class.
*
* @author mschrag
*/
public class JavaJSONClient {
  /**
   * Creates and returns a JSON Client.
   *
   * @param jsonUrl
   *            the JSON service URL
   * @param useHttpClient
   *            if true, Commons HTTPClient will be used instead of URLConnection (much better, but requires
   *            HttpClient)
   * @return the JSON client
   * @throws Exception
   *             if the client creation fails
   */
  public static Client create(String jsonUrl, boolean useHttpClient) throws Exception {
    if (useHttpClient) {
      HTTPSession.register(TransportRegistry.i());
    }
    Client client = new Client(TransportRegistry.i().createSession(jsonUrl));
    Field serializerField = client.getClass().getDeclaredField("serializer");
    serializerField.setAccessible(true);
    JSONSerializer serializer = (JSONSerializer) serializerField.get(client);
    serializer.registerSerializer(new JSONEnterpriseObjectSerializer());
    serializer.registerSerializer(new NSArraySerializer());
    serializer.registerSerializer(new NSDictionarySerializer());
    serializer.registerSerializer(new NSTimestampSerializer());
    serializer.registerSerializer(new NSDataSerializer());
    serializer.registerSerializer(new ERXConstantSerializer());
    return client;
  }
}
TOP

Related Classes of er.ajax.json.client.JavaJSONClient

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.