본문 바로가기

Development/Web & Server

[Play Framework] Json RPC Client구현하기

Json-RPC로 사용할 라이브러리는 jsonrpc4j 이다.


자세한 사항은 여기로~!


이전 게시글과 연동하여 사용할 것이다. Spring Framework로 구현한 Json RPC Server를 참고!!


1. 라이브러리 추가하자

        <dependency>
               
<groupId>com.github.briandilley.jsonrpc4j</groupId>

                <artifactId>jsonrpc4j</artifactId>

                <version>1.0</version>
       
</dependency>
       
<dependency>
               
<groupId>com.fasterxml.jackson.core</groupId>
               
<artifactId>jackson-core</artifactId>
               
<version>2.0.2</version>
       
</dependency>
       
<dependency>
               
<groupId>com.fasterxml.jackson.core</groupId>
               
<artifactId>jackson-databind</artifactId>
               
<version>2.0.2</version>
       
</dependency>
       
<!-- optional, add if using jackon's annotations -->
       
<dependency>
               
<groupId>com.fasterxml.jackson.core</groupId>
               
<artifactId>jackson-annotations</artifactId>
               
<version>2.0.2</version>
       
</dependency>


2. Serve에서 구현된 Model과 Service를 사용하므로 파일을 추가하자~!




3. RPC 테스트 클래스 생성 코드를 보면 알겠지만 실제 service를 여기서 실행하듯이 사용할수 있다.

public class TestRpc {
	
	public TestRpc () {
    	
		JsonRpcHttpClient client = null;
		
    	try {
    		client = new JsonRpcHttpClient(new URL("http://localhost:11020/dinner/dinnerService"));
    		
    	} catch (Exception e) {
    		e.printStackTrace();
    		
    	} catch (Throwable t) {
    		t.printStackTrace();
    		
    	}//end try/catch
    	
    	this.mService = ProxyUtil.createClientProxy(this.getClass().getClassLoader(), DinnerService.class, client);
		
	}//end constructor
	
	/*
	 * 		GET
	 */
	
	public String getMessage () {
		
		return this.mService.getMonthMenu(2013, 9).toString();
		
	}//end getMessage Method
	
	
	private final DinnerService mService;
	

}


4. 그리고 Controller 에서 사용

public class Application extends Controller {
    
    public static Result test () {

        return ok(test.render("test Title", new TestRpc().getMessage(), Html.apply("Test Page")));
    	
    }//end test Method

}//end Application