0
I Use This!
Very Low Activity
Analyzed 2 days ago. based on code collected 2 days ago.

Project Summary

jsonrpc4j - JSON-RPC for JavaThis project aims to provide the facility to easily implement JSON-RPC for the java programming language. At the heart of jsonrpc4j is JsonEngine. JsonEngine is used to convert java objects to and from json objects (and other things related to JSON-RPC). JsonEngine is an interface and therefore makes the underlying JSON implementation pluggable. Currently the only implementation available uses Jackson (JacksonJsonEngine).

What's Missing?Here's a list of things that need to be implemented:

GET support as per the spec (currently only POST is supported) Create portable javascript library

MavenThis project is built with Maven. Be sure to check the pom.xml for the dependencies if you're not using maven. If you're already using spring you should have most (if not all) of the dependencies already - outside of maybe the Jackson library. The jsonrpc4j maven repository is located at http://jsonrpc4j.googlecode.com/svn/maven/repo/. Add the following to your pom.xml if you're using maven:

In :


jsonrpc4j-webdav-maven-repo
jsonrpc4j maven repository
http://jsonrpc4j.googlecode.com/svn/maven/repo/
default
In :


com.googlecode
jsonrpc4j
0.1-SNAPSHOT
JSON-RPC specificationThere doesn't seem to be an official source for the JSON-RPC specification. With that said, the guys over at json-rpc google group seem to be fairly active so the specification that they've outlined is what was used.

Spring Frameworkjsonrpc4j provides a RemoteExporter to expose java services as JSON-RPC over HTTP without requiring any additional work on the part of the programmer. The following example explains how to use the JsonServiceExporter within the Spring Framework.

Create your service interface:

package com.mycompany;
public interface UserService {
User createUser(String userName, String firstName, String password);
User createUser(String userName, String password);
User findUserByUserName(String userName);
int getUserCount();
}Implement it:

package com.mycompany;
public class UserServiceImpl
implements UserService {

public User createUser(String userName, String firstName, String password) {
User user = new User();
user.setUserName(userName);
user.setFirstName(firstName);
user.setPassword(password);
database.saveUser(user)
return user;
}

public User createUser(String userName, String password) {
return this.createUser(userName, null, password);
}

public User findUserByUserName(String userName) {
return database.findUserByUserName(userName);
}

public int getUserCount() {
return database.getUserCount();
}

}Configure your service in spring as you would any other RemoteExporter:






Your service is now available at the URL /UserService.json. Type conversion of JSON->Java and Java->JSON will happen for you automatically. This service can be accessed by any JSON-RPC capable client, including the JsonProxyFactoryBean provided by this project:






In the case that your JSON-RPC requies named based parameters rather than indexed parameters an annotation can be added to your service interface (this also works on the service implementation for the ServiceExporter):

package com.mycompany;
public interface UserService {
User createUser(@JsonRpcParamName("theUserName") String userName, @JsonRpcParamName("thePassword") String password);
}

Tags

http java javascript json jsonrpc jsonrpc4j remoting rpc spring

Badges

In a Nutshell, jsonrpc4j...

MIT License
Permitted

Sub-License

Private Use

Commercial Use

Modify

Distribute

Forbidden

Hold Liable

Required

Include Copyright

Include License

These details are provided for information only. No information here is legal advice and should not be used as such.

All Licenses

This Project has No vulnerabilities Reported Against it

Did You Know...

  • ...
    Black Duck offers a free trial so you can discover if there are open source vulnerabilities in your code
  • ...
    you can subscribe to e-mail newsletters to receive update from the Open Hub blog
  • ...
    there are over 3,000 projects on the Open Hub with security vulnerabilities reported against them
  • ...
    compare projects before you chose one to use

Languages

Languages?height=75&width=75
Java
99%
2 Other
1%

30 Day Summary

Jun 16 2018 — Jul 16 2018

12 Month Summary

Jul 16 2017 — Jul 16 2018
  • 26 Commits
    Down -21 (44%) from previous 12 months
  • 7 Contributors
    Down -4 (36%) from previous 12 months