用于为REST服务创建客户端存根的java工具

 手机用户2502916411 发布于 2023-01-18 17:04

假设我有一个REST Web服务的WADL,我已经能够在SoapUI中组合一堆请求(我对REST或SOAP并不陌生) - 而且我已经设法获得了wadl2java工具从我的WADL自动生成并编译类.

是否有任何教程演示如何使用这些类来访问我的REST Web服务?理想情况下,我希望避免使用大型框架(Spring可能很好,但我现在希望将依赖项保持在最低限度).

这个网址提供了使用wadl2java的提示,但是,似乎没有人提供在可行的教程中实际使用工作产品的任何示例? 从CXF中的RESTful服务创建客户端Java类

编辑:我正在使用wadl2java maven插件,这很棒.除了我发现的一个错误之外,它可以完美地生成(并编译)存根代码.我将查看下面提供的一些答案并添加我的反馈.

编辑13/Mar:
Maven cxf-wadl2java-plugin创建了文件:target\generated-sources\cxf\com\example\services\v2\package-info.java:

@javax.xml.bind.annotation.XmlSchema(namespace = "http://www.example.com/services/v2",
    elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
package com.example.services.v2;

看起来这不是我希望的简单解决方案.
作为参考,我得到的错误是: [com.sun.istack.SAXException2:无法编组类型"com.example.services.v2.ModelCriteria"作为元素,因为它缺少@XmlRootE lement注释]

我最终使用的代码:

    JAXRSClientFactoryBean bean = new JAXRSClientFactoryBean();
    bean.setAddress("https://example.com/services/v2/rest");
    bean.setUsername(...);
    bean.setPassword(...);
    bean.setResourceClass(ModelRestService.class);

    bean.getOutInterceptors().add( new org.apache.cxf.interceptor.LoggingOutInterceptor() );

    ModelRestService model = bean.create(ModelRestService.class);

    ModelCriteria mc = oFact.createModelCriteria();
    mc.setModelNumber("Test");

    FindModelResult fmResult = model.findByCriteria(mc);

剩下的@XmlRootElement错误是因为我没有完全限定REST端点/ services/v2/rest.

1 个回答
  • 假设您使用CXF并且您具有服务端点的生成类 BookStore

    BookStore store = JAXRSClientFactory.create("http://bookstore.com",
                                                BookStore.class);
    Books books = store.getAllBooks();
    

    有关详细信息,请参阅以下链接

    http://cxf.apache.org/docs/jax-rs-client-api.html

    http://cxf.547215.n5.nabble.com/How-to-generate-rest-client-with-wadl2java-td5738281.html

    2023-01-18 17:08 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有