网络服务中的全新蜜蜂。
我的网址为:
http://abc.xyz.com/straw/api/?wsdl
及方法:
$result= $client->call($session, "catalog_product.list");
这是我尝试过的:
通过 Eclipse 向导创建了一个新的 JAVA 项目。
单击项目导航至 Web 服务 -> Web 服务客户端。
在配置中:
- (a) 服务器运行时:tomcat v7.0 服务器
- (b) Web 服务运行时:apache 轴
从 slider 中选择测试客户端(我也尝试过开发有点困惑的客户端,因为我必须创建非常困惑的客户端)
点击“完成”。
结果我发现网络服务测试客户端浏览器有一些方法、输入和结果。 我的资源文件夹中还得到了一些 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 方法。”
抱歉我的愚蠢,因为我什至不知道要输出/交付什么。
有什么指导吗?谢谢!
最佳答案
是的,您所做的实际上是告诉 Eclipse 您想要创建所有必要的类,以便您能够从 Java 进行对 Web 服务的客户端调用。 现在,我尝试做与您相同的操作,以查看 Eclipse 生成的内容,但不幸的是(至少对我来说)您提供的 wsdl 地址不起作用。不过,我使用不同的 wsdl 进行了尝试,并得到了 Eclipse 生成的一些类似文件。
基本上 Eclipse 的作用是:
- 当您使用生成的客户端调用 Web 服务时,它会创建代表在客户端和服务器之间传递的 (XML) 数据的模型类。在您的情况下,这些类只是普通的 Java bean(在这种情况下,它们具有基本名称,没有任何后缀,例如“_HanddlerXXX”或“Service”(我认为您没有在这里列出这些,或者您的服务非常简单,它使用 JDK 类作为模型类(例如 String、Integer 等)。
- 它还创建一个 Java 接口(interface),表示在 WSDL 中声明的 Web 服务操作端点:这将是“MagentoService”,它具有与 Web 服务操作端点相对应的方法(它们返回表示这些端点的对象)
- 最后,“Mage_Api_Model_Server_HandlerPortType”代表一个 Web 服务端点,它提供与该端点操作相对应的方法。您必须使用所需的逻辑来实现此接口(interface),并使用该实现来实际向您的网络服务发送请求
现在这里有很多 Web 服务和 SOAP 术语,更不用说一个非常复杂的用于处理 Java 中的 Web 服务的框架,即 Axis。我的建议实际上是阅读以下书籍(至少是前两章):
它非常适合让您了解 Soap 和 Rest Web 服务的基本概念,它提供了从基础到涉及如何使用 CXF 和 Axis2 在 Java 中实现这些概念的精彩示例,以及如何使用 Eclipse 来实现这些概念,它是对于您在这里所做的事情来说,这只是一本很棒的初学者书籍。
关于java - 在 JAVA 中创建 Web 服务客户端以从 WSDL (w.Eclipse) 访问方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7820654/