引用WSDL2Java生成的类的问题

时间:2012-03-20 18:15:17

标签: java playframework axis2 wsdl2java

我在引用和使用WSDL2Java生成的类时遇到问题(作为参考,这是一个来自此处的后续问题:Java out of memory errors on large WSDLs (play framework))。根据我尝试引用它生成的文件的方式,我运行时会遇到不同的错误。 (注意:我只是在运行时遇到这些错误)

因此,我运行我的WSDL2Java(使用XMLBeans选项),然后使用蚂蚁来构建它。在我生成并构建了我的类之后,我获得了3个标准文件夹和构建文件:

  • 构建
  • 资源
  • SRC
  • 的build.xml

这包含所有好东西。接下来,在我的Eclipse项目中,我创建了一个名为 dynamics 的文件夹,并将上述3个文件夹添加到其中。要使用这些类(没有编译错误),我只需将 dynamics / build / classes 添加到我的buildpath / classpath即可。注意:在eclipse中,找出向类路径添加内容的正确方法似乎有点笨拙......我最初尝试这种方式的方式是:

Project -> Properties -> Libraries -> Add Class Folder

另一种方法是使用:

Run -> Run Configurations -> Classpath

这两种方式似乎都没有区别。但无论哪种方式,我似乎都能够使用我的WSDL代码,一切看起来都很好。但是当我尝试运行它时,我遇到了一些问题。仅仅执行上述引用,当我在webapp上点击web服务时,我得到以下错误:

The file /app/controllers/Application.java could not be compiled. Error rasied is : com.microsoft.schemas.xrm._2011.contracts.Entity cannot be resolved

所以,为了解决这个问题,我尝试过的另一件事是将所有生成的源添加到我的项目源文件夹中。基本上在 dynamics / src 中获取所有WSDL生成的.java文件并将其粘贴到我的 项目/ app 中(基本上我的所有项目源代码都存在)。这种方式让我更进一步。我点击了我的项目的web服务,它反过来试图调用动态web服务(使用动态WSDL的东西)......直到我尝试使用引用XMLBeans对象的对象,这是我很好的下一个错误,即:

Cannot load SchemaTypeSystem. Unable to load class with name schemaorg_apache_xmlbeans.system.<*really long id*>.TypeSystemHolder

所以基本上,它会让我生成我的OrganizationServiceStub,但是一旦我尝试运行一个请求(例如RetrieveMultiple),就会遇到上述错误。

有什么想法吗?非常感谢帮助!

一些细节:

  • 我正在尝试使用Eclipse
  • 来引用它
  • 运行WSDL2Java时使用XMLBeans选项
  • Axis2版本1.5.4
  • 使用Apache ant 1.8.3构建
  • 使用PlayFramework
  • 从MS Dynamics WSDL生成(非常大的定义!)

更新

我注意到如果我将WSDL生成的.java文件添加为新的源文件夹(而不是将所有.java文件复制/粘贴到我的主项目源文件夹中),则会出现此错误:

The file /app/controllers/Application.java could not be compiled. Error rasied is : com.microsoft.schemas.xrm._2011.contracts.Entity cannot be resolved

这是一个不同于我复制和粘贴源文件的错误......这对我来说似乎很奇怪......

0 个答案:

没有答案