JavaTM Platform
Standard Ed. 6

javax.management.remote.rmi
클래스 RMIServerImpl

java.lang.Object 
  상위를 확장 javax.management.remote.rmi.RMIServerImpl
모든 구현된 인터페이스:
Closeable , Remote , RMIServer
직계의 기존의 서브 클래스:
RMIIIOPServerImpl , RMIJRMPServerImpl


public abstract class RMIServerImpl
extends Object
implements Closeable , RMIServer

연결기 서버를 나타내는 RMI 객체입니다. 원격 클라이언트는,newClient(Object) 메소드를 사용해 접속을 작성할 수 있습니다. 이 메소드는, 접속을 나타내는 RMI 객체를 돌려줍니다.

사용자 코드는, 반드시 이 클래스를 직접 참조하지 않습니다. 일반적으로, RMI 접속 서버는,RMIConnectorServer 클래스에서 작성됩니다. 원격 클라이언트는, 일반적으로,JMXConnectorFactory 를 사용하는지,RMIConnector 를 인스턴스화하는 것에 의해 접속을 작성합니다.

이것은 추상 클래스입니다. 구상 서브 클래스는, JRMP 와 IIOP 의 어느 쪽을 사용할까 등, 클라이언트 접속 객체의 상세를 정의합니다.

도입된 버젼:
1.5

생성자 의 개요
RMIServerImpl (Map <String ,? > env)
          새로운 RMIServerImpl 를 구축합니다.
 
메소드의 개요
protected  void clientClosed (RMIConnection  client)
          makeClient 에 의해 작성된 클라이언트 접속의 종료시에 불려 가는 메소드입니다.
 void close ()
          이 접속 서버를 종료합니다.
protected abstract  void closeClient (RMIConnection  client)
          makeClient 로 작성된 클라이언트 접속을 종료합니다.
protected abstract  void closeServer ()
          close() 에 의해 불려 가 연결기 서버를 종료합니다.
protected abstract  void export ()
          이 RMI 객체를 export 합니다.
 ClassLoader getDefaultClassLoader ()
          이 연결기 서버로 사용되는 디폴트의 ClassLoader 를 가져옵니다.
 MBeanServer getMBeanServer ()
          이 연결기 서버의 접속처의 MBeanServer 입니다.
protected abstract  String getProtocol ()
          이 객체의 프로토콜 캐릭터 라인을 돌려줍니다.
 String getVersion ()
          이 연결기 서버가 인식하는 RMI 연결기 프로토콜의 버젼입니다.
protected abstract  RMIConnection makeClient (String  connectionId, Subject  subject)
          새로운 클라이언트 접속을 작성합니다.
 RMIConnection newClient (Object  credentials)
          새로운 클라이언트 접속을 작성합니다.
 void setDefaultClassLoader (ClassLoader  cl)
          이 연결기 서버의 디폴트의 ClassLoader 를 설정합니다.
 void setMBeanServer (MBeanServer  mbs)
          이 연결기 서버의 접속처의 MBeanServer 를 설정합니다.
abstract  Remote toStub ()
          이 서버 객체의 원격 처리 가능한 Stub를 돌려줍니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

생성자 의 상세

RMIServerImpl

public RMIServerImpl(Map <String ,? > env)

새로운 RMIServerImpl 를 구축합니다.

파라미터:
env - 새로운 RMIServerImpl 의 속성을 포함한다 환경. 이 파라미터가 null 의 경우, 빈 상태(empty)의 맵을 지정했을 경우와 같은 것이 된다
메소드의 상세

export

protected abstract void export()
                        throws IOException 

이 RMI 객체를 export 합니다.

예외:
IOException - 이 RMI 객체를 export 할 수 없는 경우

toStub

public abstract Remote  toStub()
                       throws IOException 
이 서버 객체의 원격 처리 가능한 Stub를 돌려줍니다.

반환값:
원격 처리 가능한 Stub
예외:
IOException - Stub를 취득할 수 없는 경우. 예를 들어, RMIServerImpl 가 아직 export되어 있지 않은 경우 등

setDefaultClassLoader

public void setDefaultClassLoader(ClassLoader  cl)

이 연결기 서버의 디폴트의 ClassLoader 를 설정합니다. 새로운 클라이언트 접속은, 이 클래스 로더를 사용합니다. 기존의 클라이언트 접속에 영향은 없습니다.

파라미터:
cl - 이 연결기 서버로 사용된다 새로운 ClassLoader
관련 항목:
getDefaultClassLoader()

getDefaultClassLoader

public ClassLoader  getDefaultClassLoader()

이 연결기 서버로 사용되는 디폴트의 ClassLoader 를 가져옵니다.

반환값:
이 연결기 서버로 사용된다 디폴트의 ClassLoader

관련 항목:
setDefaultClassLoader(java.lang.ClassLoader)

setMBeanServer

public void setMBeanServer(MBeanServer  mbs)

이 연결기 서버의 접속처의 MBeanServer 를 설정합니다. 새로운 클라이언트 접속은, 이 MBeanServer 와 서로 작용합니다. 기존의 클라이언트 접속에 영향은 없습니다.

파라미터:
mbs - 새로운 MBeanServer. null 이라도 좋지만, 그 경우, 새로운 클라이언트 접속은 거부되는
관련 항목:
getMBeanServer()

getMBeanServer

public MBeanServer  getMBeanServer()

이 연결기 서버의 접속처의 MBeanServer 입니다. 이것은, 이 객체상에서 setMBeanServer(javax.management.MBeanServer) 에게 건네지는 마지막 값입니다. 메소드 호출이 아직 행해지지 않은 경우는 null 가 됩니다.

반환값:
이 연결기의 접속처의 MBeanServer
관련 항목:
setMBeanServer(javax.management.MBeanServer)

getVersion

public String  getVersion()
인터페이스 RMIServer 의 기술:

이 연결기 서버가 인식하는 RMI 연결기 프로토콜의 버젼입니다. 다음의 형식의 캐릭터 라인이 됩니다.

 protocol-version implementation-name
 

protocol-version 는 0 이상의 복수의 정수를 피리어드 (. )(으)로 단락지은 형식이 됩니다. 이 문서에 기재되어 있는 버젼의 구현에서는, 캐릭터 라인 1.0 을 사용합니다.

프로토콜 버젼과 구현명의 사이에는 공백 문자를 1 개 입력합니다. 구현명의 형식은 지정되고 있지 않습니다만, 구현의 버젼 번호를 포함하는 것을 추천합니다. 시큐리티상의 이유등에 의해, 구현명으로서 공문자열을 지정할 수도 있습니다.

정의:
인터페이스 RMIServer 내의 getVersion
반환값:
여기서 설명되고 있는 형식의 캐릭터 라인

newClient

public RMIConnection  newClient(Object  credentials)
                        throws IOException 

새로운 클라이언트 접속을 작성합니다. 이 메소드는,makeClient 를 호출해, 반환된 클라이언트 접속 객체를 내부 리스트에 추가합니다. close() 메소드에 의해, 이 RMIServerImpl 가 종료되었을 경우, 리스트내의 각 객체의 close() 메소드가 불려 갑니다.

이 내부 리스트내에 클라이언트 접속 객체가 존재하고 있어도, 이 클라이언트 접속 객체가 가베지 컬렉션의 대상으로부터 제외되는 것은 아닙니다.

정의:
인터페이스 RMIServer 내의 newClient
파라미터:
credentials - 이 객체는, RMIConnection 를 작성하기 전에, 호출측의 인증용으로서 서버에게 건네지는 사용자 정의의 증명서를 지정한다. null 도 가능
반환값:
새롭게 작성된 RMIConnection일반적으로, makeClient 에 의해 작성된 객체. 덧붙여 구현은,RMIConnection 를 구현하는 다른 객체에, 이 객체를 랩 할 수 있다
예외:
IOException - 새로운 클라이언트 객체를 작성 또는 export 할 수 없는 경우
SecurityException - 지정된 증명서에서는, 서버가 사용자를 인증할 수 없는 경우
IllegalStateException - getMBeanServer() 가 null 의 경우

makeClient

protected abstract RMIConnection  makeClient(String  connectionId,
                                            Subject  subject)
                                     throws IOException 

새로운 클라이언트 접속을 작성합니다. 이 메소드는, 공개 메소드 newClient(Object) 에 의해 불려 갑니다.

파라미터:
connectionId - 새로운 접속의 ID. 이 연결기 서버에 의해 유효화 된 모든 접속은, 각각 다른 ID 를 가진다. 이 파라미터가 null 의 경우의 동작은 부정
subject - 인증 끝난 비인증자. null 도 가능
반환값:
새롭게 작성된 RMIConnection
예외:
IOException - 새로운 클라이언트 객체를 작성 또는 export 할 수 없는 경우

closeClient

protected abstract void closeClient(RMIConnection  client)
                             throws IOException 

makeClient 로 작성된 클라이언트 접속을 종료합니다.

파라미터:
client - 이전에 makeClient 에 의해 반환된,closeClient 메소드가 아직 1 회도 불려 가지 않은 접속. client 가 null 의 경우를 포함해, 어떠한 조건 위반이 있었을 경우, 동작은 부정이 된다
예외:
IOException - 클라이언트 접속을 종료할 수 없는 경우

getProtocol

protected abstract String  getProtocol()

이 객체의 프로토콜 캐릭터 라인을 돌려줍니다. 반환되는 캐릭터 라인은, RMI/JRMP 의 경우는 rmi, RMI/IIOP 의 경우는 iiop 가 됩니다.

반환값:
이 객체의 프로토콜 캐릭터 라인

clientClosed

protected void clientClosed(RMIConnection  client)
                     throws IOException 

makeClient 에 의해 작성된 클라이언트 접속의 종료시에 불려 가는 메소드입니다. makeClient 를 정의하는 서브 클래스는, 생성된 객체의 close 메소드가 불려 갔을 때, 이 메소드가 불려 가도록(듯이) 설정할 필요가 있습니다. 이것에 의해,RMIServerImpl 의 접속 리스트로부터의 삭제가 가능하게 됩니다. 이 리스트내에 client 가 존재하고 있지 않아도, 에러가 아닙니다.

이 메소드는, 접속 리스트로부터 client 를 삭제한 뒤,closeClient(client) 를 호출합니다.

파라미터:
client - 종료한 클라이언트 접속
예외:
IOException - closeClient(javax.management.remote.rmi.RMIConnection) 가 이 예외를 throw 하는 경우
NullPointerException - client 가 null 의 경우

close

public void close()
           throws IOException 

이 접속 서버를 종료합니다. 이 메소드는, 새로운 클라이언트 접속을 더 이상 받아들이지 않게 하기 위한(해),closeServer() 메소드를 호출합니다. 그러자(면),makeClient 에 의해 반환된 나머지 RMIConnection 객체 1 개(살) 1 개(살)에 대해서, 그 close 메소드가 불려 갑니다.

이 메소드가 2 회 이상 불려 갔을 때의 동작은 지정되고 있지 않습니다.

closeServer()IOException 를 throw 했을 경우, 개개의 접속은 종료합니다. 그 후, 이 메소드로부터 IOException 가 throw 됩니다.

closeServer() 는 정상적으로 종료했지만, 1 개(살) 이상의 접속이 IOException 를 throw 했다고 합니다. 이 경우, 모든 접속이 종료한 뒤, 이러한 IOException 가운데 1 개가 throw 됩니다. 1 개(살) 이상의 접속이 IOException 를 throw 했을 경우, 이 메소드로부터 throw 되는 내용은 부정이 됩니다.

정의:
인터페이스 Closeable 내의 close
예외:
IOException - closeServer() 또는 RMIConnection.close() 호출이 IOException 를 throw 했을 경우

closeServer

protected abstract void closeServer()
                             throws IOException 

close() 에 의해 불려 가 연결기 서버를 종료합니다. 이 메소드의 종료후, 연결기 서버는 새로운 접속을 일절 받아들이지 않게 됩니다.

예외:
IOException - 연결기 서버의 종료에 실패했을 경우

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.