java.lang.Object javax.management.remote.JMXServiceURL
public class JMXServiceURL
JMX API 连接器服务器的地址。此类的实例是不可变的。
地址是 SLP 的抽象服务 URL,此内容在 RFC 2609 中进行了定义并在 RFC 3111 中进行了修正。它看起来应该如下所示:
service:jmx:protocol:sap
其中 protocol
为连接到连接器服务器所用的传输协议。它是一个或多个 ASCII 字符所组成的字符串,每个字符为字母、数字或字符 +
或 -
之一。第一个字符必须为字母。大写字母被转换为小写字母。
sap
是查找到连接器服务器的地址位置。此地址采用了 RFC 2609 中为基于 IP 的协议所定义的语法子集。说它是子集是因为它不支持 user@host
语法。
此类目前也不支持由 RFC 2609 定义的其他语法。
所支持的语法为:
//[host[:port]][url-path]
方括号 []
指示地址的可选部分。并不是所有的协议都能识别所有可选部分。
host
是主机名,它是一个 IPv4 数值主机地址,或是括在方括号中的 IPv6 数值地址。
port
是一个十进制的端口号。0 表示默认或匿名端口,这取决于协议。
host
和 port
均可忽略。必须有了 host
才能提供 port
。
url-path
(如果有)以一个斜杠 (/
) 或分号 (;
) 开头直到地址结束。它可以采用 RFC 2609 中指定的分号语法包含属性。此类不对这些属性进行解析,因此无法检测到错误的属性语法。
尽管根据 RFC 2609 的规定,包含以分号开头的 url-path
是合法的,但不是所有的 SLP 实现都允许这样,所以建议避免使用这种语法。
初始 service:jmx:protocol
字符串或地址的主机部分并不区分大小写。根据所采用的协议,url-path
部分可能会区分大小写。
Service:
Schemes",
RFC 3111, "Service Location Protocol Modifications for IPv6",
序列化表格
构造方法摘要 | |
---|---|
JMXServiceURL(String serviceURL) 通过解析 Service URL 字符串来构造 JMXServiceURL 。 |
|
JMXServiceURL(String protocol, String host, int port) 构造具有给定协议、主机和端口的 JMXServiceURL 。 |
|
JMXServiceURL(String protocol, String host, int port, String urlPath) 构造具有给定部分的 JMXServiceURL 。 |
方法摘要 | |
---|---|
boolean |
equals(Object obj) 指示是否有其他的对象等于此对象。 |
String |
getHost() Service URL 的主机部分。 |
int |
getPort() Service URL 的端口部分。 |
String |
getProtocol() Service URL 的协议部分。 |
String |
getURLPath() Service URL 的 URL Path 部分。 |
int |
hashCode() 返回该对象的哈希码值。 |
String |
toString() 此 Service URL 的字符串表示形式。 |
从类 java.lang.Object 继承的方法 |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
构造方法详细信息 |
---|
public JMXServiceURL(String serviceURL) throws MalformedURLException
通过解析 Service URL 字符串来构造 JMXServiceURL
。
serviceURL
- 要解析的 URL 字符串。
NullPointerException
- 如果
serviceURL
为 null。
MalformedURLException
- 如果
serviceURL
不符合 Abstract Service URL 的语法,或者它不是 JMX Remote API 服务的有效名称。
JMXServiceURL
必须以字符串
"service:jmx:"
开头。(不区分大小写)。不允许包含任何不属于可打印 ASCII 字符的字符。
public JMXServiceURL(String protocol, String host, int port) throws MalformedURLException
构造具有给定协议、主机和端口的 JMXServiceURL
。此构造方法等效于 JMXServiceURL(protocol, host, port, null)
。
protocol
- URL 的协议部分。如果为 null,则默认为
jmxmp
。
host
- URL 的主机部分。如果为 null,则默认为本地主机名,它由
InetAddress.getLocalHost().getHostName()
确定。如果它为一个数值 IPv6 地址,可选择将其括在方括号
[]
中。
port
- URL 的端口部分。
MalformedURLException
- 如果某一部分在语法上不正确,或者如果
host
为 null 并且无法找到本地主机名,或者如果
port
为负。
public JMXServiceURL(String protocol, String host, int port, String urlPath) throws MalformedURLException
构造具有给定部分的 JMXServiceURL
。
protocol
- URL 的协议部分。如果为 null,则默认为
jmxmp
。
host
- URL 的主机部分。如果为 null,则默认为本地主机名,它由
InetAddress.getLocalHost().getHostName()
确定。如果它为一个数值 IPv6 地址,可选择将其括在方括号
[]
中。
port
- URL 的端口部分。
urlPath
- URL 的 URL Path 部分。如果为 null,则默认为空字符串。
MalformedURLException
- 如果某一部分在语法上不正确,或者如果
host
为 null 并且无法找到本地主机名,或者如果
port
为负。
方法详细信息 |
---|
public String getProtocol()
Service URL 的协议部分。
public String getHost()
Service URL 的主机部分。如果 Service URL 是用带一个 URL 字符串参数的构造方法所构造的,则结果为该 URL 中指定主机的子字符串。如果此 Service URL 是用带一个独立主机参数的构造方法所构造的,则结果为所指定的字符串。如果该字符串为 null,则结果为 InetAddress.getLocalHost().getHostName()
。
无论是哪种情况,如果主机是使用数值 IPv6 地址的 [...]
语法指定的,则此处的返回值不包括方括号。
public int getPort()
Service URL 的端口部分。如果未指定任何端口,则返回值为 0。
public String getURLPath()
Service URL 的 URL Path 部分。这是一个空字符串,或以斜杠 (/
) 开头的字符串,或以分号 (;
) 开头的字符串。
public String toString()
此 Service URL 的字符串表示形式。如果把此方法的返回值提供给 JMXServiceURL
构造方法,则结果对象等于此值。
返回字符串的 host
部分是由 getHost()
返回的值。如果该值指定了一个数值 IPv6 地址,则它用方括号 []
括起。
返回字符串的 port
部分是由 getPort()
返回的值,以最短的十进制形式表示。如果该值为零,则忽略该值。
public boolean equals(Object obj)
指示是否有其他的对象等于此对象。当且仅当 obj
为 JMXServiceURL
的一个实例,后者的 getProtocol()
、getHost()
、getPort()
和 getURLPath()
方法均返回与此对象相等的值时,此方法才返回 true。getProtocol()
和 getHost()
的值的大小写可能不同,但不影响二者的相等性。
obj
- 要与之比较的引用对象。
obj
参数相同,则返回
true
;否则返回
false
。
Object.hashCode()
,
Hashtable
public int hashCode()
Object
复制的描述
java.util.Hashtable
提供的哈希表)的性能。
hashCode
的常规协定是:
hashCode
方法都必须生成相同的整数结果。 Object.equals(java.lang.Object)
方法,两个对象不相等,那么对这两个对象中的任一对象上调用 hashCode 方法不 要求一定生成不同的整数结果。但是,程序员应该意识到,为不相等的对象生成不同整数结果可以提高哈希表的性能。 实际上,由 Object 类定义的 hashCode 方法确实会针对不同的对象返回不同的整数。(这一般是通过将该对象的内部地址转换成一个整数来实现的,但是 JavaTM 编程语言不需要这种实现技巧。)
Object.equals(java.lang.Object)
,
Hashtable