|
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 도 참조해 주세요.