Hessian 크로스 언어 호출 인 스 턴 스
자바 버 전의 Hessian 예 는 이것 을 참고 할 수 있 습 니 다.http://www.voidcn.com/blog/qw765811529/article/p-4530324.html
Java 서버 코드:
package app.demo;
import java.io.Serializable;
public class User implements Serializable {
private static final long serialVersionUID = 153519254199840035L;
String userName = "snoopy";
String password = "showme";
public User(String user, String pwd) {
this.userName = user;
this.password = pwd;
}
public String getUserName() {
return userName;
}
public String getPassword() {
return password;
}
}
package app.demo;
public interface BasicAPI {
public void setGreeting(String greeting);
public String hello();
public User getUser();
}
package app.demo;
public class BasicService implements BasicAPI {
private String _greeting = "Hello, world";
public void setGreeting(String greeting) {
_greeting = greeting;
System.out.println("set greeting success:" + _greeting);
}
public String hello() {
return _greeting;
}
public User getUser() {
return new User("prance", "meshow");
}
}
자바 클 라 이언 트 코드:(Hessian 은 언어 를 뛰 어 넘 기 때문에 클 라 이언 트 가 데 이 터 를 호출 할 때 대상 으로 전환 하 는 것 은 패키지 이름 을 요구 하지 않 고 클래스 이름 이 일치 합 니 다.물론 일반적인 상황 에서 서버 에서 개발 한 동창 회 는 클 라 이언 트 가 호출 한 동창 sdk 를 제공 합 니 다.sdk 에서 데이터 가 되 돌아 오 는 클래스 는 서버 와 일치 합 니 다.여 기 는 테스트 를 위 한 것 입 니 다)
public class User2 implements Serializable {
private static final long serialVersionUID = 153519254199830056L;
String userName = "snoopy";
String password = "showme";
public User2(String user, String pwd) {
this.userName = user;
this.password = pwd;
}
public String getUserName() {
return userName;
}
public String getPassword() {
return password;
}
}
public interface BasicAPI2 {
public void setGreeting(String greeting);
public String hello();
public User2 getUser();
}
import app.demo2.BasicAPI2;
import com.caucho.hessian.client.HessianProxyFactory;
public class BasicClient {
public static void main(String[] args) throws Exception {
//String url = "http://127.0.0.1:8080/Hessian/hello";
String url = "http://localhost:8080/EasyHessian/hello";
HessianProxyFactory factory = new HessianProxyFactory();
//BasicAPI basic = (BasicAPI) factory.create(BasicAPI.class, url);
BasicAPI2 basic = (BasicAPI2) factory.create(BasicAPI2.class, url);
System.out.println("Hello:" + basic.hello());
System.out.println("Hello:" + basic.getUser());
System.out.println("Hello:" + basic.getUser().getUserName());
System.out.println("Hello:" + basic.getUser().getPassword());
basic.setGreeting("HelloGreeting");
System.out.println("Hello:" + basic.hello());
}
}
상세 한 원본 코드:https://github.com/Kingson4Wu/Frieza-revenge/tree/master/RPC-framework/src/main/java/app/demo
Python 클 라 이언 트 코드:
#!python
# encoding: utf-8
'''
Python
Python , https://github.com/bgilmore/mustaine , Hessian Python :
git clone https://github.com/bgilmore/mustaine.git
cd mustaine
sudo python setup.py install
http://san-yun.iteye.com/blog/1628405
http://pydoc.net/Python/mustaine/0.1.7/mustaine.parser/
https://github.com/Kingson4Wu/Frieza-revenge/blob/master/RPC-framework%2Fsrc%2Fmain%2Fjava%2Fapp%2Fdemo%2FBasicService.java
'''
from mustaine.client import HessianProxy
test = HessianProxy("http://localhost:8080/EasyHessian/hello")
print test._headers
print test.hello()
print test.getUser()
print test.getUser().userName
user = test.getUser()
print user.password
test.setGreeting("Hessian Python")
print test.hello()
$(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('
').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); });
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.