利用idea生成webservice客户端--详解步骤--(wsdl文件的使用)

目录

一、idea安装webservice

1.点击左上file,选中settings​编辑

2.下载Web Service

3.给此项目添加webservice

4.添加webservice的依赖

二、利用idea根据wsdl文件自动生成webService客户端代码(然后比照着生成的测试类进行接口或方法的调用)

1.打开tools -> WebServices -> Generate Java Code From Wsdl,按照图中顺序进行

2.按照图中顺序进行操作,最后点击OK

3.必须勾选Generate TestCase

4.wsdl文件转换生成Java代码:成功

5.如何使用生成的代码

三、直接利用Axis2调用wsdl类型接口:


一、idea安装webservice

1.点击左上file,选中settings

2.下载Web Service

3.给此项目添加webservice

 

4.添加webservice的依赖

依赖加就行镜像用阿里云的基本都能下载
<!-- axis 1.4 jar start -->
<dependency>
    <groupId>org.apache.axis</groupId>
    <artifactId>axis</artifactId>
    <version>1.4</version>
</dependency>
<dependency>
    <groupId>commons-discovery</groupId>
    <artifactId>commons-discovery</artifactId>
    <version>0.2</version>
    <exclusions>
        <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.apache.axis</groupId>
    <artifactId>axis-jaxrpc</artifactId>
    <version>1.4</version>
</dependency>
<dependency>
    <groupId>org.apache.axis</groupId>
    <artifactId>axis-saaj</artifactId>
    <version>1.4</version>
</dependency>
<dependency>
    <groupId>wsdl4j</groupId>
    <artifactId>wsdl4j</artifactId>
    <version>1.4</version>
</dependency>

   <!--webservice的:TestCase需要的jar包-->     
        <dependency>

            <groupId>junit</groupId>

            <artifactId>junit</artifactId>

            <version>4.12</version>

        </dependency>

二、利用idea根据wsdl文件自动生成webService客户端代码(然后比照着生成的测试类进行接口或方法的调用)

步骤:1.利用idea根据wsdl文件生成代码,需要先将wsdl文件下载到本地

    2.下载时无必要要求,选择Apache Axis,依赖需要自行百度搜索

    3.下载后需要比照着测试类代码,写调用接口或方法的代码

好处:1.入参的参数不需要自己进行封装 , 特别容易写

     2.返回值都被封装好了 , 可以很容易就取到 , 不用自己写解析代码

1.打开tools -> WebServices -> Generate Java Code From Wsdl,按照图中顺序进行

2.按照图中顺序进行操作,最后点击OK

3.必须勾选Generate TestCase


(会给出调用接口的例子,照着抄就可以实现调用指定接口)

4.2点击ok报错 , 就去百度下载Axis所需的依赖 , 第一次需额外下载一个插件(直接下载完就行)

只要不是报wsdl文件出错 , 其他报错后,只要能生成代码 , 就可以使用

4.wsdl文件转换生成Java代码:成功

例子1:

  

 例子2:

5.如何使用生成的代码

点击打开名字中带Test的这个类,找到你需要的方法,直接复制出来就能用

三、直接利用Axis2调用wsdl类型接口:

好处:不用利用idea根据wsdl自动生成webService客户端代码,然后再比照着测试类调用所需方法

坏处: 1.入参需要自己进行参数的封装 ,自己封装参数有例子也不容易

2.如果需要获取调用接口的返回值,则还不会解析返回的数据,无法得到所需的参数(没解析报文的例子,自己不会写)

Axis2 调用接口示例:

import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;


public class Test {
    public static void test() {
        String userId = "123";
        String bindAccount = "123";
        RPCServiceClient serviceClient = null;

        OMFactory factory = OMAbstractFactory.getOMFactory();
        OMNamespace omDiag = factory.createOMNamespace("http://diagnosis.interfaces.axis2.osf.nort hbound.neal.cpehg.ums.zte.com", "diag");
        OMNamespace omXSD = factory.createOMNamespace("http://model.common.northbound.neal.cpehg. ums.zte.com/xsd", "xsd");

        try {
            serviceClient = new RPCServiceClient();
            Options options = serviceClient.getOptions();
// 指定调用WebService的URL
            EndpointReference targetEPR = new EndpointReference("http://10.46.60.200:9094/axis2/services/Cpe112Diag nosisWebServices?wsdl");
            options.setTo(targetEPR);
            options.setTimeOutInMilliSeconds(30000);
            options.setManageSession(true);

// 指定方法的参数值
            OMElement paramRequest = factory.createOMElement("request", omDiag);
            OMElement paramUserId = factory.createOMElement("userID", omXSD);

            paramUserId.setText(userId);
            OMElement paramBindAccount = factory.createOMElement("bindAccount", omXSD);
            paramBindAccount.setText(bindAccount);
            paramRequest.addChild(paramBindAccount);
            paramRequest.addChild(paramUserId);

            OMElement paramItemName = factory.createOMElement("itemName", omDiag);
            paramItemName.setText("cpehg.diagnosis.CpeBasicInfo");

            String method = "getParameterValuesFromDbAndCpeByItemName";

            OMElement data = factory.createOMElement(method, omXSD);
            data.setNamespace(omDiag);
            data.addChild(paramRequest);
            data.addChild(paramItemName);

            OMElement re = serviceClient.sendReceive(data);
// 处理返回数据

        } catch (AxisFault e) {
// 异常处理
            e.printStackTrace();
        } finally {

            try {
                if (serviceClient != null) serviceClient.cleanupTransport();
            } catch (AxisFault e) {

            }
        }
    }
}

  • 12
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
通过IDEA生成webservice客户端的方法如下: 1. 首先准备IDEA,可以单独创建一个项目或者在现有项目中创建一个包来放置生成webservice客户端代码。 2. 在IDEA中选中这个包,右击,在菜单中选择【webservice】,然后选择【Generate Java code from WSDL】,即可通过WSDL生成Java代码。 3. 准备WSDL,可以通过地址或者本地WSDL文件生成客户端代码。注意,如果有代理设置,需要在IDEA中进行相应的设置。 4. 生成方式大同小异,可以选择使用CXF或其他方式生成代码。如果使用CXF,需要添加相应的依赖。例如: ```xml <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-bundle</artifactId> </dependency> ``` 以上是通过IDEA生成webservice客户端的简要步骤。\[1\]\[2\] #### 引用[.reference_title] - *1* *2* [在IDEA生成webservice客户端](https://blog.csdn.net/chen15369337607/article/details/100555104)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [idea建立webservice服务端和客户端程序](https://blog.csdn.net/wfpc__/article/details/84642166)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值