我正在尝试使用VMware SDK 5.1,它附带了Java代码示例。
它带有一个vim25.jar文件,该文件似乎是Apache Axis基于其vimService.wsdl文件构建的jar文件。
我使用示例类构建了一个eclipse项目,包括项目中的vim25.jar文件。
当我运行示例并尝试连接到服务器时,出现此错误:
Exception in thread "main" javax.xml.ws.WebServiceException: Cannot find 'vimService.wsdl' wsdl. Place the resource correctly in the classpath.
我尝试通过Project>将vimService.wsdl文件添加到类路径中。属性> Java构建路径> Libaries并把它放在那里。
我尝试将wsdl文件复制到eclipse项目的根目录。我尝试将它放在project / src文件夹的根目录中。我尝试通过Run>添加到类路径运行配置...类路径选项卡。
不能让错误消失。
任何人都可以帮助我理解为什么会发生这种错误,以及Apache Axis生成的jar文件和相关的wsdl应该如何工作?
谢谢!
答案 0 :(得分:0)
看到你的问题后,我在eclipse中创建了一个示例项目(我正在使用vsphere python api)。
我从Steve Jins VI Java网站下载了vijava5120121125.zip。提取拉链,有两个罐子:dom4j-1.6.1.jar
和vijava5120121125.jar
。在示例项目的Java构建路径中添加了两个jar。然后我从Vi java网站执行了样本,并且它已成功运行。
import java.net.MalformedURLException;
import java.net.URL;
import java.rmi.RemoteException;
import com.vmware.vim25.*;
import com.vmware.vim25.mo.*;
public class TestVsphere {
public static void main(String[] args) {
try {
ServiceInstance si = new ServiceInstance(new URL("https://15.22.10.11/sdk"), "Administrator", "Password123", true);
Folder rootFolder = si.getRootFolder();
String name = rootFolder.getName();
ManagedEntity[] mes = new InventoryNavigator(rootFolder).searchManagedEntities("VirtualMachine");
if(mes==null || mes.length ==0)
{
return;
}
VirtualMachine vm = (VirtualMachine) mes[0];
VirtualMachineConfigInfo vminfo = vm.getConfig();
VirtualMachineCapability vmc = vm.getCapability();
vm.getResourcePool();
System.out.println("Hello " + vm.getName());
System.out.println("GuestOS: " + vminfo.getGuestFullName());
System.out.println("Multiple snapshot supported: " + vmc.isMultipleSnapshotsSupported());
si.getServerConnection().logout();
} catch (RemoteException | MalformedURLException e) {
e.printStackTrace();
}
}
}