为什么我得到这个"找不到wsdl"错误?

时间:2014-07-22 15:25:53

标签: java apache wsdl axis vmware

我正在尝试使用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应该如何工作?

谢谢!

1 个答案:

答案 0 :(得分:0)

看到你的问题后,我在eclipse中创建了一个示例项目(我正在使用vsphere python api)。

我从Steve Jins VI Java网站下载了vijava5120121125.zip。提取拉链,有两个罐子:dom4j-1.6.1.jarvijava5120121125.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();
        }
    }

}