|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
java.lang.Object java.lang.ClassLoader java.security.SecureClassLoader java.net.URLClassLoader javax.management.loading.MLet
public class MLet
원격 URL 로부터 착신한 MBean 서버내의 MBean (복수가능)를 인스턴스화해, 등록할 수가 있습니다. m-let 는 관리 애플릿의 쇼트 컷입니다. m-let 서비스는, 취득하는 MBean 의 정보를 지정하는 m-let 텍스트 파일을 로드하는 것으로, MBean 의 처리를 실시합니다. 각 MBean 의 정보는, 단일의 태그 인스턴스 (MLET 태그)로 지정합니다. m-let 텍스트 파일의 위치는 URL 로 지정합니다.
MLET
태그의 구문은 다음과 같습니다.
<MLET
CODE =
class | OBJECT =
serfile
ARCHIVE = "
archiveList"
[CODEBASE =
codebaseURL]
[NAME =
mbeanname]
[VERSION =
version]
>
[
arglist]
</MLET
>
다음에 각각의 의미를 나타냅니다.
CODE =
classARCHIVE
속성으로 지정되었다 . jar
파일의 쳐 어느 쪽인가에, MBean 의 컴파일이 끝난 상태 . class
파일이 포함되어 있을 필요가 있습니다. CODE
나 OBJECT
중 한쪽이 존재하고 있을 필요가 있습니다.
OBJECT =
serfile. ser
파일을 지정하는 속성입니다. 이 파일은,ARCHIVE
속성으로 지정되었다 . jar
파일의 쳐 어느 쪽인가에 포함되어 있을 필요가 있습니다. . jar
파일에 디렉토리 계층이 포함되는 경우는, 이 계층내의 파일 패스를 지정합니다. 그렇게 하지 않으면 일치는 발견되지 않습니다. CODE
나 OBJECT
중 한쪽이 존재하고 있을 필요가 있습니다.
ARCHIVE = "
archiveList"
. jar
파일을 지정하는 필수 속성입니다. . jar
파일의 쳐 어느 쪽인가에,CODE
또는 OBJECT
속성으로 지정된 파일이 포함되어 있을 필요가 있습니다. 어카이브(archive) 리스트에 복수의 파일이 포함되는 경우, 다음의 조건이 필요하게 됩니다.
. jar
파일이, 코드 베이스 URL 로 지정된 디렉토리에 포함되고 있을 필요가 있습니다.
CODEBASE =
codebaseURLARCHIVE
속성으로 지정되었다 . jar
파일을 포함한 디렉토리를 식별합니다. 이 속성을 지정하는 것은,. jar
파일이 m-let 텍스트 파일과 같은 디렉토리에 없는 경우만입니다. 이 속성이 지정되어 있지 않은 경우, m-let 텍스트 파일의 베이스 URL 가 사용됩니다.
NAME =
mbeannameMBeanServer.getDefaultDomain()
에 의해 반환되는 MBean 서버의 디폴트 도메인이 됩니다.
VERSION =
version. jar
파일의 버젼 번호를 지정하는 옵션 속성입니다. 버젼 번호를 사용하면(자), m-let 텍스트 파일의 다음번 로드시에, 서버로부터 . jar
파일을 로드해, 캐쉬내에 로컬에 포함되고 있는 파일을 갱신할 수가 있습니다. version 에는, 0 이상의 복수의 10 진정수를 피리어드로 단락지어 지정합니다.
ARG TYPE=
argumentType VALUE=
value>
인수 리스트내로 지정하는 인수의 형태는, Java 원시형이나 Java 기본형이 아니면 안됩니다 (java.lang.Boolean, java.lang.Byte, java.lang.Short, java.lang.Long, java.lang.Integer, java.lang.Float, java.lang.Double, java.lang.String
).
m-let 서비스는,java.net.URLClassLoader
를 확장합니다. 이 서비스를 사용해, 에이전트의 VM 내의 원격 클래스 및 jar 파일을 로드할 수 있습니다.
주 - MLet
클래스 로더는,MBeanServerFactory.getClassLoaderRepository(javax.management.MBeanServer)
를 사용해, 로드 된 jar 파일내에 발견되지 않는 클래스를 로드합니다.
생성자 의 개요 | |
---|---|
MLet ()
위양 관계의 부모가 되어 있는 디폴트의 ClassLoader 를 사용해, 새로운 MLet 를 구축합니다. |
|
MLet (URL [] urls)
위양 관계의 부모가 되어 있는 디폴트의 ClassLoader 를 사용해, 지정된 URL 의 새로운 MLet 를 구축합니다. |
|
MLet (URL [] urls,
boolean delegateToCLR)
위양 관계의 부모가 되어 있는 디폴트의 ClassLoader 를 사용해, 지정된 URL 의 새로운 MLet 를 구축합니다. |
|
MLet (URL [] urls,
ClassLoader parent)
지정된 URL 의 새로운 MLet 를 구축합니다. |
|
MLet (URL [] urls,
ClassLoader parent,
boolean delegateToCLR)
지정된 URL 의 새로운 MLet 를 구축합니다. |
|
MLet (URL [] urls,
ClassLoader parent,
URLStreamHandlerFactory factory)
지정된 URL, 친클래스 로더, 및 URLStreamHandlerFactory 의 새로운 MLet 를 구축합니다. |
|
MLet (URL [] urls,
ClassLoader parent,
URLStreamHandlerFactory factory,
boolean delegateToCLR)
지정된 URL, 친클래스 로더, 및 URLStreamHandlerFactory 의 새로운 MLet 를 구축합니다. |
메소드의 개요 | |
---|---|
void |
addURL (String url)
지정된 URL 를, 클래스 및 자원을 검색하기 위한 URL 리스트에 추가합니다. |
void |
addURL (URL url)
지정된 URL 를, 클래스 및 자원을 검색하기 위한 URL 리스트에 추가합니다. |
protected URL |
check (String version,
URL codebase,
String jarfile,
MLetContent mlet)
이 메소드는, 캐쉬 기능과 버젼 관리 기능을 지원하기 위해서 이 서비스를 확장할 때 오버라이드(override) 됩니다. |
protected Class <? > |
findClass (String name)
재정의 예정의 클래스 로더의 main 메소드입니다. |
protected String |
findLibrary (String libname)
네이티브 라이브러리의 절대 경로명을 돌아갑니다. |
String |
getLibraryDirectory ()
네이티브 라이브러리를 메모리에 로드하기 전에 포함하는 라이브러리 로더에 의해 현재 사용되고 있는 디렉토리를 가져옵니다. |
Set <Object > |
getMBeansFromURL (String url)
MBean 서버에 추가될 예정의 MBean 를 정의하는 MLET 태그를 포함한 텍스트 파일을 로드합니다. |
Set <Object > |
getMBeansFromURL (URL url)
MBean 서버에 추가될 예정의 MBean 를 정의하는 MLET 태그를 포함한 텍스트 파일을 로드합니다. |
URL [] |
getURLs ()
클래스 및 자원을 로드하기 위한 URL 의 검색 패스를 돌려줍니다. |
Class <? > |
loadClass (String name,
ClassLoaderRepository clr)
이 MLet 의 URL 내에 클래스가 발견되지 않는 경우, 지정된 ClassLoaderRepository 을 사용해 클래스를 로드합니다. |
void |
postDeregister ()
MBean 서버로부터 등록 해제한 뒤, m-let 가 필요한 오퍼레이션을 실행할 수 있도록(듯이) 합니다. |
void |
postRegister (Boolean registrationDone)
MBean 서버에의 등록이 성공 또는 실패한 뒤, m-let 가 필요한 오퍼레이션을 실행할 수 있도록(듯이) 합니다. |
void |
preDeregister ()
MBean 서버로부터 등록 해제하기 전에, m-let 가 필요한 오퍼레이션을 실행할 수 있도록(듯이) 합니다. |
ObjectName |
preRegister (MBeanServer server,
ObjectName name)
MBean 서버에 등록되기 전에, m-let 가 필요한 오퍼레이션을 실행할 수 있도록(듯이) 합니다. |
void |
readExternal (ObjectInput in)
지정된 ObjectInput 로부터, 이 MLet 의 내용을 복원합니다. |
void |
setLibraryDirectory (String libdir)
네이티브 라이브러리를 메모리에 로드하기 전에 포함하는 라이브러리 로더에 의해 사용되는 디렉토리를 설정합니다. |
void |
writeExternal (ObjectOutput out)
이 MLet 의 내용을, 지정된 ObjectOutput 에 보존합니다. |
클래스 java.net. URLClassLoader 로부터 상속된 메소드 |
---|
definePackage , findResource , findResources , getPermissions , newInstance , newInstance |
클래스 java.security. SecureClassLoader 로부터 상속된 메소드 |
---|
defineClass , defineClass |
클래스 java.lang. ClassLoader 로부터 상속된 메소드 |
---|
clearAssertionStatus , defineClass , defineClass , defineClass , defineClass , definePackage , findLoadedClass , findSystemClass , getPackage , getPackages , getParent , getResource , getResourceAsStream , getResources , getSystemClassLoader , getSystemResource , getSystemResourceAsStream , getSystemResources , loadClass , loadClass , resolveClass , setClassAssertionStatus , setDefaultAssertionStatus , setPackageAssertionStatus , setSigners |
클래스 java.lang. Object 로부터 상속된 메소드 |
---|
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait |
인터페이스 javax.management.loading. MLetMBean 로부터 상속된 메소드 |
---|
getResource , getResourceAsStream , getResources |
생성자 의 상세 |
---|
public MLet()
public MLet(URL [] urls)
urls
- 클래스 및 자원의 로드원이 되는 URLpublic MLet(URL [] urls, ClassLoader parent)
urls
- 클래스 및 자원의 로드원이 되는 URLparent
- 위양용의 친클래스 로더public MLet(URL [] urls, ClassLoader parent, URLStreamHandlerFactory factory)
urls
- 클래스 및 자원의 로드원이 되는 URLparent
- 위양용의 친클래스 로더factory
- URL 의 작성시에 사용하는 URLStreamHandlerFactorypublic MLet(URL [] urls, boolean delegateToCLR)
urls
- 클래스 및 자원의 로드원이 되는 URLdelegateToCLR
- 친 ClassLoader 에서도 URL 에서도 클래스가 발견되지 않고, MLet 가 MBeanServer ClassLoaderRepository
에 처리를 위양 할 필요가 있는 경우는 truepublic MLet(URL [] urls, ClassLoader parent, boolean delegateToCLR)
urls
- 클래스 및 자원의 로드원이 되는 URLparent
- 위양용의 친클래스 로더delegateToCLR
- 친 ClassLoader 에서도 URL 에서도 클래스가 발견되지 않고, MLet 가 MBeanServer ClassLoaderRepository
에 처리를 위양 할 필요가 있는 경우는 truepublic MLet(URL [] urls, ClassLoader parent, URLStreamHandlerFactory factory, boolean delegateToCLR)
urls
- 클래스 및 자원의 로드원이 되는 URLparent
- 위양용의 친클래스 로더factory
- URL 의 작성시에 사용하는 URLStreamHandlerFactorydelegateToCLR
- 친 ClassLoader 에서도 URL 에서도 클래스가 발견되지 않고, MLet 가 MBeanServer ClassLoaderRepository
에 처리를 위양 할 필요가 있는 경우는 true메소드의 상세 |
---|
public void addURL(URL url)
MLetMBean
내의 addURL
URLClassLoader
내의 addURL
url
- URL 의 검색 패스에 추가하는 URLpublic void addURL(String url) throws ServiceNotFoundException
MLetMBean
내의 addURL
url
- 추가하는 URL
ServiceNotFoundException
- 이상한 형식의 URL 가 지정되었을 경우public URL [] getURLs()
MLetMBean
내의 getURLs
URLClassLoader
내의 getURLs
public Set <Object > getMBeansFromURL(URL url) throws ServiceNotFoundException
MLetMBean
내의 getMBeansFromURL
url
- 로드 되는 텍스트 파일의 URL 에 상당하는 URL 객체
ServiceNotFoundException
- m-let 텍스트 파일에 MLET 태그가 포함되지 않은 경우, m-let 텍스트 파일이 발견되지 않는 경우, MLET 태그의 필수 속성이 지정되어 있지 않은 경우, 또는 url 의 값이 null 인 경우
IllegalStateException
- MLet MBean 가 MBeanServer 에 등록되지 않은 경우public Set <Object > getMBeansFromURL(String url) throws ServiceNotFoundException
MLetMBean
내의 getMBeansFromURL
url
- 로드 되는 텍스트 파일의 URL 에 상당하는 String 객체
ServiceNotFoundException
- m-let 텍스트 파일에 MLET 태그가 포함되지 않은 경우, m-let 텍스트 파일이 발견되지 않는 경우, MLET 태그의 필수 속성이 지정되어 있지 않은 경우, 또는 url 의 형식이 이상한 경우
IllegalStateException
- MLet MBean 가 MBeanServer 에 등록되지 않은 경우public String getLibraryDirectory()
MLetMBean
내의 getLibraryDirectory
UnsupportedOperationException
- 이 구현이 네이티브 라이브러리의 이 포함 방법을 지원하지 않는 경우setLibraryDirectory(java.lang.String)
public void setLibraryDirectory(String libdir)
MLetMBean
내의 setLibraryDirectory
libdir
- 라이브러리 로더에 의해 사용되는 디렉토리
UnsupportedOperationException
- 이 구현이 네이티브 라이브러리의 이 포함 방법을 지원하지 않는 경우getLibraryDirectory()
public ObjectName preRegister(MBeanServer server, ObjectName name) throws Exception
MBeanRegistration
내의 preRegister
server
- MBean 서버. m-let 는 여기에 등록되는name
- m-let 의 객체명
Exception
- 이 예외는, MBean 서버에 캐치 되어 MBeanRegistrationException 로서 재throw 된다public void postRegister(Boolean registrationDone)
MBeanRegistration
내의 postRegister
registrationDone
- m-let 가 MBean 서버에 정상적으로 등록되었는지의 여부를 나타낸다. 등록에 실패했을 경우의 값은 falsepublic void preDeregister() throws Exception
MBeanRegistration
내의 preDeregister
java.langException
- 이 예외는, MBean 서버에 캐치 되어 MBeanRegistrationException 로서 재throw 된다
Exception
- 이 예외는, MBean 서버에 캐치 되어
MBeanRegistrationException
로서 재throw 된다public void postDeregister()
MBeanRegistration
내의 postDeregister
public void writeExternal(ObjectOutput out) throws IOException , UnsupportedOperationException
이 MLet 의 내용을, 지정된 ObjectOutput
에 보존합니다. 이 메소드는, 모든 구현으로 지원되는 것은 아닙니다. 이 메소드를 지원하지 않는 구현은,UnsupportedOperationException
를 throw 합니다. 이 메소드를 지원하는 경우, 또는 데이터의 기입 형식을 변경하는 경우는, 서브 클래스에서 이 메소드를 오버라이드(override) 합니다.
데이터의 기입 형식은 미지정입니다만,writeExternal(java.io.ObjectOutput)
를 지원하는 구현은,readExternal(java.io.ObjectInput)
도 지원할 필요가 있습니다. 즉,writeExternal(java.io.ObjectOutput)
에 기입해진 데이터를 readExternal(java.io.ObjectInput)
로 읽어낼 수가 없으면 안됩니다.
Externalizable
내의 writeExternal
out
- 기입처의 객체 출력 스트림
IOException
- 기입중에 문제가 발생했을 경우
UnsupportedOperationException
- 이 구현이 이 오퍼레이션을 지원하지 않는 경우public void readExternal(ObjectInput in) throws IOException , ClassNotFoundException , UnsupportedOperationException
지정된 ObjectInput
로부터, 이 MLet 의 내용을 복원합니다. 이 메소드는, 모든 구현으로 지원되는 것은 아닙니다. 이 메소드를 지원하지 않는 구현은,UnsupportedOperationException
를 throw 합니다. 이 메소드를 지원하는 경우, 또는 데이터의 읽기 형식을 변경하는 경우는, 서브 클래스에서 이 메소드를 오버라이드(override) 합니다.
데이터의 읽기 형식은 미지정입니다만,readExternal(java.io.ObjectInput)
를 지원하는 구현은,writeExternal(java.io.ObjectOutput)
도 지원할 필요가 있습니다. 즉,writeExternal(java.io.ObjectOutput)
에 기입해진 데이터를 readExternal(java.io.ObjectInput)
로 읽어낼 수가 없으면 안됩니다.
Externalizable
내의 readExternal
in
- read원의 객체 입력 스트림
IOException
- 읽기중에 문제가 발생했을 경우
ClassNotFoundException
- 복원하려 하고 있는 객체에 대응하는 클래스가 발견되지 않는 경우
UnsupportedOperationException
- 이 구현이 이 오퍼레이션을 지원하지 않는 경우public Class <? > loadClass(String name, ClassLoaderRepository clr) throws ClassNotFoundException
이 MLet 의 URL 내에 클래스가 발견되지 않는 경우, 지정된 ClassLoaderRepository
을 사용해 클래스를 로드합니다. ClassLoaderRepository 가 null 의 경우, 이 MLet 의 URL 내에 클래스가 발견되지 않으면 즉시 ClassNotFoundException
가 throw 됩니다.
name
- 로드 대상 클래스의 이름clr
- 이 ClassLoader 내로 지정의 클래스가 발견되지 않는 경우에 사용되는 ClassLoaderRepository. null 의 경우 있어
ClassNotFoundException
- 이 ClassLoader 내에도 지정의 ClassLoaderRepository 내에도 지정의 클래스가 발견되지 않는 경우protected Class <? > findClass(String name) throws ClassNotFoundException
URLClassLoader
내의 findClass
name
- 클래스의 이름
ClassNotFoundException
- 지정된 클래스가 발견되지 않는 경우protected String findLibrary(String libname)
OSName/OSArch/OSVersion/lib/nativelibname
)으로 검색을 합니다. JAR 파일내에서 Solaris SPARC 5.7 의 라이브러리의 상태를 검색할 때:
구체적으로는,nativelibname
을 System.mapLibraryName
(libname)
의 결과로 합니다. 그 후, JAR 파일내에서 다음의 이름이 다음의 차례로 검색됩니다. nativelibname
<os.name>/<os.arch>/<os.version>/lib/
nativelibname
여기서,<X>
는,System.getProperty(X)
로부터 포함되는 공백을 삭제한 것으로,/
는 파일 단락 문자 (File.separator
)를 나타냅니다.
이 메소드의 반환값이 null
(이 클래스 로더로 로드 된 JAR 파일내에 라이브러리가 발견되지 않는다)의 경우, VM 는,java.library.path
프로퍼티으로서 지정된 패스를 부가해 라이브러리를 검색합니다.
ClassLoader
내의 findLibrary
libname
- 라이브러리명
System.loadLibrary(String)
,
System.mapLibraryName(String)
protected URL check(String version, URL codebase, String jarfile, MLetContent mlet) throws Exception
이 메소드는, 캐쉬 기능과 버젼 관리 기능을 지원하기 위해서 이 서비스를 확장할 때 오버라이드(override) 됩니다. MLet 파일로부터 버젼, 코드 베이스, 및 jar 파일이 추출되면(자) 불려 가 지정의 MBean 를 로드해도 문제가 없는가를 확인하거나 지정의 URL 를 다른 URL 로 옮겨놓기 위해서(때문에) 사용됩니다.
이 메소드의 디폴트 구현은, 미변경의codebase
를 돌려줍니다.
version
- 로컬에 포함되었다 . jar
파일의 버젼 번호codebase
- 원격 . jar
파일의 베이스 URLjarfile
- 로드 된다 . jar
파일의 이름mlet
- MLET
태그를 나타내는 MLetContent
인스턴스
Exception
- 어떠한 원인으로 MBean 가 로드 되지 않았던 경우. 이 예외는,getMBeansFromURL
에 의해 반환된 세트에 추가된다
|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.