1

我正在尝试为 WSDL(使用 xmlbeans)生成一些存根并不断遇到一些问题。我正在使用以下页面:

http://axis.apache.org/axis2/java/core/docs/userguide-creatingclients-xmlbeans.html

我要跳过的这些步骤中唯一的部分是“client.java”部分,因为我已经准备好另一个项目,我想将生成的 jar 插入其中。我的步骤的快速运行如下:

  • 我的 WSDL 是一个 crmonline 实例,所以我运行如下内容:

C:\Work\aaa2>WSDL2Java -uri https://mycrmorgname.crm.dynamics.com/XRMServices/2011/Organization.svc?wsdl -p crmsdk -d xmlbeans -s -oc:\mystubfolder

  • 我使用“ant”构建项目

  • 在我的“客户”项目中,我引用了在 .\build\lib 中创建的 2 个 jars

一旦我添加了所有axis2 / apache引用等,我的项目就可以正常构建,但是当我通过playframework启动它时,当我点击第一页时会出错。第一个错误似乎是:

17:48:45,289 ERROR ~ Error in ControllersEnhancer. 
controllers.ProfileController.editProfile has not been properly enhanced 
(fieldAccess javassist.expr.FieldAccess@212ca458).

或类似的东西。向下滚动错误,我可以看到我得到了这个:

The file /app/models/MyDynamicsClient.java could not be compiled. 
Error raised is : org.apache.axiom.om.util.AXIOMUtil cannot be resolved

现在,我什至还没有访问我的任何 Web 服务,甚至还没有实例化我的任何类……我不知道为什么会发生这种情况。或者更准确地说,我到底在搞砸什么!我错过了对某事的引用吗?在 AXIOMUtil 上进行搜索告诉我这应该在 Axiom-api 中(我拥有的版本是 Axiom-api-1.2.10.jar)。我有这个参考,似乎没有帮助。或者也许我在某个地方做错了什么?

关于版本的一些细节:

  • 轴 2 1.5.4
  • 阿帕奇蚂蚁 1.8.3

任何帮助将不胜感激!

4

1 回答 1

0

好的,在尝试了很多不同的事情并重新阅读了网站/说明之后,我意识到我做错了什么。或者至少我想出了一些我开始做不同的事情来解决问题。

首先,我将另一个示例项目中的 jar 文件用于 apache http 组件。我不知道这是否有影响,但无论如何我下载了一个新版本并引用了那些 JARS。

此外,我没有在我的“存根”项目中创建 jar 并引用这些,而是​​将所有生成的存根/类直接复制到现有的客户端项目中。我有一种感觉,这可能是解决我的问题的原因。或者可能是这个和我之前的步骤的混合!

所以我的新步骤如下:

  1. 确保为所需组件下载了所有正确的版本。就我而言,我有以下内容:

    • 阿帕奇轴 2 v 1.5.4
    • Apache HTTP 组件客户端 4.1.3
    • 阿帕奇蚂蚁 1.8.3
  2. 将 Axis2 和 HTTP 组件库中的所有 JARS 复制到您的客户端项目中并引用它们。

  3. 使用 WSDL2Java 在它自己的项目中创建存根和类。

  4. 确保项目使用 Ant 构建

  5. 将 src 文件夹中所有生成的类文件复制到客户端的源文件夹中。

  6. 修复任何其他参考问题并构建

谢天谢地,这让我走了。

于 2012-03-16T14:36:18.747 回答