E D R , A S I H C RSS

Hessian

http://caucho.com/hessian/

Resin 을 μ΄μš©ν•˜λŠ” 경우라면 Hessian μ΄μš©ν•΄μ„œ κ°„λ‹¨ν•˜κ²Œ RPC λΌ κ΅¬ν˜„ν•  수 μžˆλ‹€.

hessian simple tutorial (ν™ˆνŽ˜μ΄μ§€μ˜ Servlet 예제) - μ΄λŠ” Resin Servlet Container κ°€ λ™μž‘ν•΄μ•Ό 함.

interface 의 μ •μ˜

RPC λΌ μœ„ν•΄μ„œλŠ” μ„œλ²„-ν΄λΌμ΄μ–ΈνŠΈμ˜ λŒ€ν™”λΌ μœ„ν•œ interface 의 μ •μ˜κ°€ ν•„μš”ν•˜λ‹€. κ°„λ‹¨ν•˜κ²Œ μ •μ˜ν•΄λ³Έλ‹€.

Basic.java
~cpp 
public interface Basic {
    public String hello();
    public int returnInt();
}

RPC Service κ΅¬ν˜„

그리고 RPC Test λΌ κ΅¬ν˜„ν•΄λ³΄μž. (μ—¬κΈ°μ„  Hessian Servlet 을 이용)
μ΄λΌ μ»΄νŒŒμΌ ν•˜κΈ° μœ„ν•΄μ„œλŠ” hessian-2.1.3.jar 화일과 jsdk23.jar, resin.jar 화일이 classpath 에 λ§žμΆ°μ€˜μ•Ό ν•œλ‹€. (μ΄λŠ” resin 의 lib 폴더에 μžˆλ‹€. hessian jar 화일은 hessian λΌ λ‹€μš΄λ°›λŠ”λ‹€)
~cpp 
import com.caucho.hessian.server.HessianServlet;

public class RpcTest extends HessianServlet implements Basic {
    public String hello () {
        return "Hello, World";
    }

    public int returnInt() {
        return 10;
    }
그리고 class 화일을 Servlet 이 λŒμ•„κ°€λŠ” 디렉토리에 λ³΅μ‚¬ν•œλ‹€. μ΄λ‘œμ„œ RPC Publish κΈ°λ³Έμ€λΉ„λŠ” ok.

RPC Client κ΅¬ν˜„

Java 와 Python λ‘˜ λ‹€ κ΅¬ν˜„μ΄ κ°€λŠ₯ν•˜λ‹€. μ—¬κΈ°μ„œλŠ” κ°„λ‹¨ν•˜κ²Œ Python Interpreter λΌ μ΄μš©ν•΄λ³΄μž.
Python λͺ¨λ“ˆμ€ http://caucho.com/hessian/download/hessianlib.py λΌ λ‹€μš΄λ°›λŠ”λ‹€.
~cpp 
>>> import hessianlib
>>> proxy = hessianlib.Hessian("http://localhost:8080/servlet/RpcTest")
>>> proxy.hello()
'Hello, World'
>>> proxy.returnInt()
10
>>>

Java 의 κ²½μš°λŠ” λ‹€μŒκ³Ό κ°™λ‹€. μœ„μ—μ„œ μ •μ˜ν•œ interface 인 Basic 이 μžˆμ–΄μ•Ό ν•œλ‹€.
~cpp 
import com.caucho.hessian.client.HessianProxyFactory;

import java.net.MalformedURLException;

public class RpcClient {
    public static void main(String[] args) throws MalformedURLException {
        String url = "http://localhost:8080/servlet/RpcTest";

        HessianProxyFactory factory = new HessianProxyFactory();
        Basic basic = (Basic)factory.create(Basic.class, url);

        System.out.println("Hello ():" + basic.hello());
        System.out.println("returnInt : " + basic.returnInt());


    }

----
Hessian/Counter

See Also PythonXmlRpc
----
Java
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:24
Processing time 0.0127 sec