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

时间:2011-10-19 11:30:35

标签: java eclipse web-services

Web服务中的全新蜜蜂。

我的网址为:

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

和方法:

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

这就是我的尝试:

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

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

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

  4. 配置中的
    • (a)服务器运行时:tomcat v7.0服务器
    • (b)webservice runtime:apache axis
  5. 从滑块选择测试客户端(我也尝试过开发客户端有点混乱,因为我必须创建客户端很混乱

  6. 点击完成。

  7. 结果我找到了一些方法,输入和结果的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提到的方法,我的可交付成果是什么。”

    对不起我的愚蠢,因为我甚至不知道输出/交付的内容。

    任何指导?谢谢!

1 个答案:

答案 0 :(得分:1)

是的,你所做的实际上是告诉Eclipse你要创建所有必需的类,这样你就可以从Java调用Web服务。 现在,我尝试做同样的事情,看看Eclipse生成了什么,但不幸的是(至少对我来说)你给的wsdl地址不起作用。我用不同的wsdl尝试了它,我得到了一些由Eclipse生成的类似文件。

基本上Eclipse的作用是:

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

它非常适合用肥皂和休息网络服务的基本概念进行研究,它有很好的例子,从基础到涉及如何使用CXF和Axis2在Java中实现这些概念,以及如何使用Eclipse执行此操作,它是对于你在这里做的事情,这只是一本很棒的初学者书。