VMware vSphere Web Services SDK编程指南(二)-Java 开发设置

Java 开发设置


这节说明如何设置开发java客户端的开发环境。

主要包括以下内容:
■ Java 开发的各项要求
■ java 开发设置
■ 生成存根和编译类文件
■ 运行 SimpleClient 示例应用程序来验证设置

1. Java 开发的各项要求

  • 使用 VMware vSphere Web Services SDK 开发 Java Web服务客户端应用需要 Java SDK 和Java Web 服务开发工具集。为了获得更好的支持,建议使用 J2SE 1.7.x,特别是JDK 1.7或更高版本。现在 J2SE1.8.x 也得到了支持。

  • Java Web 服务开发工具集必须是一个可以部署到 Tomcat 服务器上的 SOAP 实现。例如,可以使用 JAX-WS 2.1版本中的客户端库。JAX-WS 2.1 libraries 包含在JDK 1.7中。

  • 也可以使用其他客户端工具和库,如 IBM WebSphere 和几个用vSphere Web Services SDK 开发的开源实现。这里只对 JAX-WS 客户端库进行了测试。

  • 案例打包为一个 samples.jar 文件,里面包含所有的 vSphere Web Services SDK 示例。这些示例包括使用JAX-WS库生成的客户端存根类文件。使用 JAX-WS 的示例是使用 JDK 1.7 编译生成的。

    注:如果你没有使用 JDK 1.7,那么必须使用 build.bat 文件在 Windows 上或者 build.sh 在 Linux 上,生成存根并编译示例文件(vim25.jar 和 samples.jar)。构建脚本会执行所有必要的任务,包括设置 CLASSPATH 和环境变量 PATH 。查看生成存根并编译类以获得详细信息。

2. Java 开发设置

具体的设置取决于你的开发平台是否已经满足了一些或所有的要求,计划使用哪个客户端 Web 服务库,以及是否计划使用所提供的示例。

具体的设置也取决于你的目标服务器是用 HTTPS 还是 HTTP 协议。

2.1 VMware vSphere Web Services SDK 获取

■ VMware vSphere Web Services SDK 可从https://developercenter.vmware.com 获取。它在 vSphere Management SDK 包里面。

2.2 使用 JAX-WS 开发的设置

用 JAX-WS libraries 和 JDK 1.7 编译生成的示例包含 vim25.jar 和 samples.jar 两个jar包。如果你开发用的是相同版本的JDK,就无需重新编译了。下面的设置说明假设目标服务器使用的是 HTTPS 协议,即默认的服务器配置。

对开发平台进行设置以使用 Java 和 JAX-WS :

  1. 安装 JDK 并为 vSphere Web Services SDK package 创建目录,注意目录不要含空格,此为避免一些包含 SDK 批处理和脚本文件而导致的问题。

  2. 安装 JavaSE 6.0版本以上,现在一般安装 JDK 时会自动安装 JavaSE。

  3. 将 SDK 组件解压到步骤 1 创建的子目录中。

  4. (可选)导入服务器证书,并使用 Java keytool 实用工具创建一个vmware.keystore。 可查阅 导入服务器证书到 Java Keystore 细节.

    作为可选项,在运行时传递 –ignorecert 参数,可忽略 Java 应用程序中的服务器证书验证。

  5. 设置 JAVAHOME 环境变量。此处不赘述。

  6. 如果你不能使用 run.bat 脚本运行Java示例,需添加预编译的示例文件vim25.jar 和 samples.jar到你的系统 CLASSPATH 环境变量。

2.2.1 编译和运行 Samples 的批处理文件和 Shell 脚本

vSphere Web Services SDK 包含若干个用于 Windows 的批处理文件和用于 Linux 的shell脚本,这些文件便于sample应用程序的构建和运行。

一些批处理文件被其他批处理文件使用。如, build.bat 有调用 lcp.bat 和 clean.bat 脚本。如果你修改了某个批处理文件,需注意和它有依赖关系的文件。

批处理文件和shell脚本如下:
这里写图片描述

2.2.2 导入服务器证书至 Java 秘钥

如果你打算使用 HTTPS 协议则需导入服务器证书,否则使用 –ignorecert 这个命令行参数忽略这一步骤。很明显,使用 HTTPS 协议可为生产环境提供更好的安全性。

JAVAHOME 环境变量是必须设置的,并将其添加至 PATH 环境变量里面。对于每个目标服务器的证书需位于 C:\VMware-Certs 子目录中。查阅获取服务器证书

导入证书至本地 Java Keystore步骤:

  1. 打开 Windows 命令窗口 或Linux shell 命令窗口;
  2. 为 Java 证书存储创建目录
    仅创建目录,实际的 keystore 秘钥文件 vmware.keystore 在导入证书时创建。

    这里写图片描述

  3. 命令窗口切换当前目录;
    如 Windows 为:cd vmware-certs\vmware

  4. 使用 Java keytool 工具导入证书;
    语法如下:

keytool -import -trustcacerts -alias root -file root.cer -keystore keystore.jks

然后会出现要求设置密码的提示:
    Enter keystore password:
5. 为 keystore 秘钥创建一个密码,在提示后面输入;
秘钥工具在控制台显示了证书信息,如:

Owner:OID.1.2.840.113549.1.9.2="1183400896,564d7761726520496e632e", CN=sdkpubslab-01.vmware.com,
 EMAILADDRESS=ssl-certificates@vmware.com, OU=VMware ESX Server Certificate, O="VMware, Inc.",
  L=Palo Alto, ST=California, C=US Issuer: OID.1.2.840.113549.1.9.2="1183400896,564d7761726520496e632e",
   CN=sdkpubslab-01.vmware.com, EMAILADDRESS=ssl-certificates@vmware.com, OU=VMware ESX Server Certificate,
    O="VMware, Inc.", L=Palo Alto, ST=California, C=US Serial number: 0 Valid 
    from: Mon Jul 02 11:28:17 PDT 2007 until: Mon Aug 31 11:28:17 PDT 2026
Certificate fingerprints:
MD5: . . .61:35:C0:C4
SHA1: 4C:...78:B2

在证书信息最后,会显示一个请求提示,以确认该证书是可信的:
    Trust this certificate? [no]:
6. 输入 yes, 回车确认,导入证书至 vmware.keystore keystore;
    控制台显示下面的信息:
    Certificate was added to keystore
7. 为每个目标服务器重复 4~6 步骤。

3. 生成存根和编译类文件

vSphere Web Services SDK 包括一系列的示例程序的 Java 存档文件,sample .jar 是使用 JDK 1.7 和 JAX-WS Web 服务库创建的。

3.1 预编译 JAX-WS 示例

JAX-WS samples 包括由 JDK 1.7 内含的 JAX-WS 库创建的vim25.jar 和 samples.jar 文件,文件位于 %WS_SDK_HOME%\java\JAX-WS\lib 目录。

如果你的开发环境使用的是 jax-ws 库和 JDK 1.7,那么你可以直接使用这些预编译库文件。

3.2 使用 Build 脚本

如果你的开发环境使用的是和预编译 samples 不同的 JDK 版本或客户端库,那么你必须重新生成客户端存根,并重新编译它们,以创建Java存档文件。在SDK中包含的 build.bat 或 build.sh 脚本可以为你执行所有必要的任务。

用 build.bat 或 build.sh 脚本生成存根和编译文件步骤:

  1. 打开命令提示符窗口;

  2. 切换至 build.bat 或 build.sh 文件所在目录;

    cd %WS_SDK_HOME%\java\JAX-WS\

  3. 运行 build.bat (或 build.sh) 文件;
    控制台将显示输出,首先是从 wsdl 生成存根。几分钟后运行完成, Done 出现在命令提示符,从 wsdl 生成存根的消息会出现两次,因为此构建文件使用两组 WSDL 声明生成客户端存根,在 \vim 和\vim25 可以找到。

例:用 build.bat (或 build.sh) 文件成功生成存根和编译

这里写图片描述

当流程结束时,恰当的 sample .jar 文件显示当前日期和时间。
如果不需要从 WSDL 重新生成存根,可用 -w 标志 build 脚本,如:
build -w

4. 运行 SimpleClient 示例应用程序来验证设置

可以通过运行一个示例应用程序来测试你的设置和连接,如SimpleClient。
SimpleClient 是一个连接到服务器的Java类,并获得顶级清单实体、它们的属性和引用的一览表。

如果你使用 JAX-WS 生成的存根,这些脚本需要先设置 JAVAHOME 环境变量。

使用提供的脚本运行一个示例应用

使用 run.bat 或 run.sh 脚本可运行任何 Java 示例。SimpleClient 就是一个不错的验证设置是否正确的示例应用,SimpleClient 的源文件路径为:

%WS_SDK_HOME%\java\JAXWS\samples\com\vmware\general\SimpleClient.java

当运行脚本时,为示例应用程序指定的 Java 类文件加上 –url, –username 和 –password 在命令行切换,在Java类规范中包含完整的包名。

下面的语句展示了使用 run.bat 脚本执行 SimpleClient 示例应用程序(在JAX-WS 中Java sample 目录中)的一般格式。

run.bat com.vmware.samples.general.SimpleClient --url https://yourFQDNservername/sdk 
--username username --password password [--ignorecert ignorecert]

示例:一个使用预编译的Java示例成功运行 SimpleClient 示例应用的输出:

Object Type : Folder
Reference Value : ha-folder-vm
Property Name : name
Property Value : vm
Object Type : HostSystem
Reference Value : ha-host
Property Name : name
Property Value : sdkpubslab-02.eng.vmware.com
Object Type : ResourcePool
Reference Value : ha-root-pool
Property Name : name
Property Value : Resources
Object Type : Folder
Reference Value : ha-folder-host
Property Name : name
Property Value : host
Object Type : ComputeResource
Reference Value : ha-compute-res
Property Name : name
Property Value : sdkpubslab-02.eng.vmware.com
Object Type : VirtualMachine
Reference Value : 16
Property Name : name
Property Value : Windows_2K3_VM
...
Object Type : Datacenter
Reference Value : ha-datacenter
Property Name : name
Property Value : ha-datacenter
Object Type : Folder
Reference Value : ha-folder-root
Property Name : name
Property Value : ha-folder-root

从命令提示符运行预编译的 SimpleClient 步骤:

  1. 打开 Windows 命令窗口 或Linux shell 命令窗口;

  2. 切换至 Java samples 目录;

    cd %WS_SDK_HOME%\java\JAXWS\samples

  3. 调用 Java runtime,提供 SimpleClient 应用的完整包名、服务器URN、凭证和 Java keystore 密钥库位置或者用 –ignorecert 参数忽略证书。完整的语法如下:

java -Djavax.net.ssl.trustStore=keystore-path-or-%KEYSTORE%-environment-variable 
package-hierarchy-classname --url server-url --username username 
--password password [--ignorecert ignorecert]

示例:

java -Djavax.net.ssl.trustStore=%VMKEYSTORE% com.vmware.general.SimpleClient 
--url https://example.com/sdk --username pubs --password *** --ignorecert ignorecert

注:如果由于系统堆或其他内存问题而出现错误消息,则可以给 Java VM 更多内存,如下:

java -Djavax.net.ssl.trustStore=%VMKEYSTORE% -Xms512M -Xmx1024M com.vmware.general.SimpleClient 
https://sdkpubslab-02.eng.vmware.com/sdk --username username --password password 
--ignorecert ignorecert

原文:
VMware vSphere 6.5 Documentation Center:
Setting Up for Java Development

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值