【问题标题】:Create a web service client in JAVA to access method from WSDL (w.Eclipse)在 JAVA 中创建 Web 服务客户端以从 WSDL (w.Eclipse) 访问方法
【发布时间】:2011-10-19 11:30:34
【问题描述】:

Web 服务中的全新蜜蜂。

我的网址是:

http://abc.xyz.com/straw/api/?wsdl  

和方法:

$result= $client->call($session, "catalog_product.list");   

这是我尝试过的:

  1. 从 Eclipse 向导创建了一个新的 JAVA 项目。

  2. r 点击项目导航到 web 服务-> web 服务客户端。

  3. 给出服务定义http://abc.xyz.com/straw/api/?wsdl

  4. 在配置中:

    • (a) 服务器运行时:tomcat v7.0 服务器
    • (b) webservice 运行时:apache 轴
  5. 从滑块中选择测试客户端(我也试过开发客户端有点困惑,因为我必须创建客户端很困惑

  6. 点击完成。

结果,我找到了带有一些方法、输入和结果的 Web 服务测试客户端浏览器。 我的资源文件夹中还有一些 JAVA 文件:

Mage_Api_Model_Server_HandlerBindingStub  
Mage_Api_Model_Server_HandlerPortType  
Mage_Api_Model_Server_HandlerPortTypeProxy  
MagentoService  
MagentoServiceLocator

这些源文件是客户端创建的吗?

我找不到方法名...

$result= $client->call($session, "catalog_product.list");

...在上述任何 JAVA 文件中。

我必须做什么才能创建 Web 服务客户端???

对我的期望是什么(源文件夹中的这些 JAVA 文件)。

还是我必须写一个JAVA项目才能访问web服务的方法

$result= $client->call($session, "catalog_product.list");

点赞this教程:

“创建一个 Web 服务客户端以访问下面提到的 wsdl 方法”的可交付成果是什么。

对不起我的愚蠢,因为我什至不知道要输出/交付什么。

有什么指导吗?谢谢!

【问题讨论】:

    标签: java eclipse web-services


    【解决方案1】:

    是的,实际上您所做的就是告诉 Eclipse,您希望创建所有必要的类,以便能够从 Java 对 Web 服务进行客户端调用。 现在,我尝试执行与您相同的操作,以查看 Eclipse 生成的内容,但不幸的是(至少对我而言)您提供的 wsdl 地址不起作用。但是我用不同的 wsdl 进行了尝试,我得到了一些由 Eclipse 生成的类似文件。

    基本上 Eclipse 的作用是:

    • 当您使用生成的客户端调用 Web 服务时,它会创建表示在客户端和服务器之间传递的 (XML) 数据的模型类。在您的情况下,这些类只是普通的 Java bean(在这种情况下,它们具有基本名称,没有任何后缀,例如“_HanddlerXXX”或“Service”(我认为您没有在此处列出这些,或者您的服务非常简单,它使用 JDK 类作为模型类,例如 String、Integer 等)。
    • 它还创建了一个表示在 WSDL 中声明的 Web 服务操作端点的 Java 接口:这将是“MagentoService”,它具有对应于 Web 服务操作端点的方法(它们返回代表这些端点的对象
    • 最后,“Mage_Api_Model_Server_HandlerPortType”代表了一个 Web 服务端点,它提供了与该端点的操作相对应的方法。您必须使用所需的逻辑实现此接口,并使用该实现将请求实际发送到您的网络服务

    现在这里有很多 Web 服务和 SOAP 术语,更不用说在 Java 中处理 Web 服务的一个相当复杂的框架,即 Axis。我的建议真的是阅读(至少前两章)以下书:

    http://www.amazon.fr/Developing-Web-Services-Apache-Axis2/dp/0557254329/ref=sr_1_1?ie=UTF8&qid=1319032081&sr=8-1

    它非常适合向您介绍soap 和rest web 服务的基本概念,它提供了从基本到涉及如何使用CXF 和Axis2 在java 中实现这些概念以及如何使用Eclipse 实现这些概念的很好的示例,它是只是一本很棒的初学者书籍,适合您在这里所做的工作。

    【讨论】:

    • 感谢您的回复和澄清,但如何处理这些。真的我一整天都很沮丧,只能生成这些原始文件......如何处理它们......我如何创建我的java类来访问一个名为catalogProductList()的服务方法;...... .
    • 嗯,这就是我推荐阅读那本书的原因。解释轴框架,它期望您如何实现 ws 客户端,如何部署和运行您的客户端等需要很长时间(实际上它根本不会像书中的解释那样好)。老实说,即使我写了一个 3000 字的答案来详细说明每个必要的步骤,我认为这对你没有多大帮助,因为下次你偶然发现类似的事情时,你最终会(重新)问同样的事情。读这本书,你可以很容易地得到它,我保证,如果你花 1 个下午的时间阅读它,你就会得到答案。
    • 感谢您的帮助和指导,但是问题还没有解决,我正在尝试在线教程,因为没有太多时间阅读书籍,但我会尝试。
    • 这是一个关于如何从 wsdl 文件开始使用 CXF 自动生成服务的示例(就像您正在尝试的那样)。 Apache CXF 的负载比 Axis(您现在尝试使用的)更好,实际上是 Axis(最初也是由 Apache 制作的)的替代工具:skillrack.com/tutorial/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-17
    • 1970-01-01
    • 1970-01-01
    • 2015-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多