|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
| 개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 | |||||||||
java.lang.Objectjava.rmi.server.RemoteObject
java.rmi.server.RemoteObjectInvocationHandler
public class RemoteObjectInvocationHandler
Java 원격 메소드 호출 (Java RMI)로 사용되는 InvocationHandler 인터페이스 구현입니다. 이 호출 핸들러와 동적 프록시 인스턴스와의 편성은, 사전 생성된 Stub 클래스의 대신으로서 사용할 수 있습니다.
어플리케이션이 이 클래스를 직접 사용하는 것은 상정되고 있지 않습니다. UnicastRemoteObject 또는 Activatable 를 사용해 동적 프록시로서 export 된 원격 객체는, 이 클래스의 인스턴스를 그 프록시의 호출 핸들러로서 포함합니다.
| 필드의 개요 |
|---|
| 클래스 java.rmi.server. RemoteObject 로부터 상속된 필드 |
|---|
ref |
| 생성자 의 개요 | |
|---|---|
RemoteObjectInvocationHandler (RemoteRef ref)
지정된 RemoteRef 를 사용해 새로운 RemoteObjectInvocationHandler 를 작성합니다. |
|
| 메소드의 개요 | |
|---|---|
Object |
invoke (Object proxy,
Method method,
Object [] args)
이 객체를 캡슐화하고 있는 프록시 인스턴스 proxy 상에서 발행된 메소드 호출을 처리해, 그 결과를 돌려줍니다. |
| 클래스 java.rmi.server. RemoteObject 로부터 상속된 메소드 |
|---|
equals , getRef , hashCode , toString , toStub |
| 클래스 java.lang. Object 로부터 상속된 메소드 |
|---|
clone , finalize , getClass , notify , notifyAll , wait , wait , wait |
| 생성자 의 상세 |
|---|
public RemoteObjectInvocationHandler(RemoteRef ref)
RemoteRef 를 사용해 새로운 RemoteObjectInvocationHandler 를 작성합니다.
ref - 원격 참조
NullPointerException - ref 가 null 의 경우| 메소드의 상세 |
|---|
public Object invoke(Object proxy,
Method method,
Object [] args)
throws Throwable
proxy 상에서 발행된 메소드 호출을 처리해, 그 결과를 돌려줍니다.
RemoteObjectInvocationHandler 에서는, 이 메소드는 다음과 같이 구현되고 있습니다.
method 가 다음의 메소드의 언젠가인 경우, 그것들은 다음과 같이 처리됩니다.
Object.hashCode : 프록시의 해시 코드값를 돌려준다
Object.equals : 인수 (args[0])가 동적 프록시 클래스의 인스턴스이며, 한편 그 인수의 호출 핸들러가 이 호출 핸들러와 동일한 경우는 true 를 돌려주어, 그렇지 않은 경우는 false 를 돌려준다
Object.toString : 프록시의 캐릭터 라인 표현을 돌려준다
그렇지 않은 경우, 원격 호출이 다음과 같이 해 실행됩니다.
proxy 가 인터페이스 Remote 의 인스턴스가 아닌 경우,IllegalArgumentException 가 throw 된다
RemoteRef 상에서 invoke 메소드가 불려 간다. 그 때, 인수로서 proxy,method,args, 및 method 에 대한 메소드 해시 ( 「Java Remote Method Invocation (RMI) 스펙」의 섹션 8.3 으로 정의되고 있다)가 건네받는다. 그리고, 그 결과가 반환된다
RemoteRef.invoke 로부터 예외가 throw 되어 한편 그 예외가,proxy 의 클래스에서 구현되고 있는 메소드의 throws 절로 지정된 어느 예외에도 할당할 수 없는 체크되는 예외였을 경우, 그 예외가 UnexpectedException 내에 랩 되어 그 랩이 끝난 예외가 throw 된다. 그렇지 않은 경우는,invoke 에 의해 throw 된 예외가 이 메소드에 의해 throw 된다
이 호출 핸들러를 포함한 유효한 동적 프록시 클래스의 인스턴스에 의해 인수가 생성되어 있지 않았던 경우, 이 메소드의 시멘틱스는 불명이 됩니다.
InvocationHandler 내의 invoke proxy - 메소드가 불려 가는 프록시 인스턴스method - 프록시 인스턴스상에서 불려 간 인터페이스 메소드에 대응하는 Method 인스턴스args - 프록시 인스턴스상에서의 메소드 호출시로 지정된 인수의 값을 포함한 객체 배열. 인수를 취하지 않는 메소드의 경우는 null
Throwable - 프록시 인스턴스상에서의 메소드 호출로부터 throw 된 예외
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
| 개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 | |||||||||
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.