javax.management.remote

接口
异常
java.lang.Object
  继承者 javax.management.remote.JMXServiceURL
所有已实现的接口:
Serializable

public class JMXServiceURL
     
extends Object
implements Serializable

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 表示默认或匿名端口,这取决于协议。

hostport 均可忽略。必须有了 host 才能提供 port

url-path(如果有)以一个斜杠 (/) 或分号 (;) 开头直到地址结束。它可以采用 RFC 2609 中指定的分号语法包含属性。此类不对这些属性进行解析,因此无法检测到错误的属性语法。

尽管根据 RFC 2609 的规定,包含以分号开头的 url-path 是合法的,但不是所有的 SLP 实现都允许这样,所以建议避免使用这种语法。

初始 service:jmx:protocol 字符串或地址的主机部分并不区分大小写。根据所采用的协议,url-path 部分可能会区分大小写。

从以下版本开始:
1.5
另请参见:
RFC 2609, "Service Templates and 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
 

构造方法详细信息

JMXServiceURL

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 字符的字符。

JMXServiceURL

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 为负。

JMXServiceURL

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 为负。
方法详细信息

getProtocol

public String getProtocol()

Service URL 的协议部分。

返回:
Service URL 的协议部分。它从不为 null。

getHost

public String getHost()

Service URL 的主机部分。如果 Service URL 是用带一个 URL 字符串参数的构造方法所构造的,则结果为该 URL 中指定主机的子字符串。如果此 Service URL 是用带一个独立主机参数的构造方法所构造的,则结果为所指定的字符串。如果该字符串为 null,则结果为 InetAddress.getLocalHost().getHostName()

无论是哪种情况,如果主机是使用数值 IPv6 地址的 [...] 语法指定的,则此处的返回值不包括方括号。

返回:
Service URL 的主机部分。它从不为 null。

getPort

public int getPort()

Service URL 的端口部分。如果未指定任何端口,则返回值为 0。

返回:
Service URL 的端口,如果没有,则返回 0。

getURLPath

public String getURLPath()

Service URL 的 URL Path 部分。这是一个空字符串,或以斜杠 (/) 开头的字符串,或以分号 (;) 开头的字符串。

返回:
Service URL 的 URL Path 部分。它从不为 null。

toString

public String toString()

此 Service URL 的字符串表示形式。如果把此方法的返回值提供给 JMXServiceURL 构造方法,则结果对象等于此值。

返回字符串的 host 部分是由 getHost() 返回的值。如果该值指定了一个数值 IPv6 地址,则它用方括号 [] 括起。

返回字符串的 port 部分是由 getPort() 返回的值,以最短的十进制形式表示。如果该值为零,则忽略该值。

覆盖:
Object 中的 toString
返回:
此 Service URL 的字符串表示形式。

equals

public boolean equals(Object obj)

指示是否有其他的对象等于此对象。当且仅当 objJMXServiceURL 的一个实例,后者的 getProtocol()getHost()getPort()getURLPath() 方法均返回与此对象相等的值时,此方法才返回 true。getProtocol()getHost() 的值的大小写可能不同,但不影响二者的相等性。

覆盖:
Object 中的 equals
参数:
obj - 要与之比较的引用对象。
返回:
如果此对象与 obj 参数相同,则返回 true;否则返回 false
另请参见:
Object.hashCode(), Hashtable

hashCode

public int hashCode()
从类 Object 复制的描述
返回该对象的哈希码值。支持此方法是为了提高哈希表(例如 java.util.Hashtable 提供的哈希表)的性能。

hashCode 的常规协定是:

  • 在 Java 应用程序执行期间,在对同一对象多次调用 hashCode 方法时,必须一致地返回相同的整数,前提是将对象进行 equals 比较时所用的信息没有被修改。从某一应用程序的一次执行到同一应用程序的另一次执行,该整数无需保持一致。
  • 如果根据 equals(Object) 方法,两个对象是相等的,那么对这两个对象中的每个对象调用 hashCode 方法都必须生成相同的整数结果。
  • 如果根据 Object.equals(java.lang.Object) 方法,两个对象不相等,那么对这两个对象中的任一对象上调用 hashCode 方法 要求一定生成不同的整数结果。但是,程序员应该意识到,为不相等的对象生成不同整数结果可以提高哈希表的性能。

实际上,由 Object 类定义的 hashCode 方法确实会针对不同的对象返回不同的整数。(这一般是通过将该对象的内部地址转换成一个整数来实现的,但是 JavaTM 编程语言不需要这种实现技巧。)

覆盖:
Object 中的 hashCode
返回:
此对象的一个哈希码值。
另请参见:
Object.equals(java.lang.Object), Hashtable