java - 在 JAVA 中创建 Web 服务客户端以从 WSDL (w.Eclipse) 访问方法

标签 java eclipse web-services

网络服务中的全新蜜蜂。

我的网址为:

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

及方法:

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

这是我尝试过的:

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

  2. 单击项目导航至 Web 服务 -> Web 服务客户端。

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

  4. 在配置中:

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

  6. 点击“完成”。

结果我发现网络服务测试客户端浏览器有一些方法、输入和结果。 我的资源文件夹中还得到了一些 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。我的建议实际上是阅读以下书籍(至少是前两章):

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 - 在 JAVA 中创建 Web 服务客户端以从 WSDL (w.Eclipse) 访问方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7820654/

相关文章:

c - 带有 IAR 插件的 Eclipse 索引器

java - 如何仅为特定端点添加 Apache cxf wsrm

ios - 将数据从 iOS 标签字段发送到网站文本字段

java - Play Framework 在内存 h2 数据库中用于单元测试

java - 使用 jdbctemplate 插入行,PrimaryKey 由 @GenerateValue 生成

java - eclipse:用 if 包围 block

android - Android 中带复选框的 ExpandableListView

java - 当 java 类被注解 @WebService 时会发生什么?

java.time.format.DateTimeParseException : Text '06/05/2019' could not be parsed at index 0

c# - C#、asp.net 或 Java 中的 VOIP