由于以前接触的WebService都是运用契约优先的方式,先设计XSD,然后再写WSDL
但现在的公司比较懒,是先写服务端代码,然后由CXF帮我们生成WSDL,
但是我发现,生成的WSDL并不是完整,少了2个节点,分别是message,portType
服务端的接口:
@WebService
public interface DocSearchService {
@WebMethod public DocSearchRequest getResult(@WebParam(name = "request") DocSearchRequest request);
}
发布方式:
DocSearchService doc=new DocSearchServiceImpl();
Endpoint.publish("http://localhost:8080/docSearch", doc);
访问浏览器:http://localhost:8080/docSearch?wsdl,得到的WSDL为:
<?xml version="1.0" ?><wsdl:definitions name="DocSearch" targetNamespace="http://imp.service.ws.com/" xmlns:ns1="http://service.ws.com/" xmlns:ns2="http://schemas.xmlsoap.org/wsdl/soap/http" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://imp.service.ws.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:import location="http://localhost:8080/docSearch?wsdl=DocSearchService.wsdl" namespace="http://service.ws.com/">
</wsdl:import>
<wsdl:binding name="DocSearchSoapBinding" type="ns1:DocSearchService">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"></soap:binding>
<wsdl:operation name="getResult">
<soap:operation soapAction="" style="document"></soap:operation>
<wsdl:input name="getResult">
<soap:body use="literal"></soap:body>
</wsdl:input>
<wsdl:output name="getResultResponse">
<soap:body use="literal"></soap:body>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="DocSearch">
<wsdl:port binding="tns:DocSearchSoapBinding" name="DocSearchServiceImplPort">
<soap:address location="http://localhost:8080/docSearch"></soap:address>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
问题1:客户端拿到这样的WSDL,缺胳膊断腿的,客户端拿他有啥作用啊,都不知道入参是什么?
问题2:比如入参DocSearchRequest,这个对象有5个成员变量,但是只有2个是必须的,其他为可选,如果我们不先设计XSD,是不是只能通过JAXB的annotation去这个对象的某些字段上去标注为required?
相关推荐
Apache CXF是一个开源的服务框架,它允许开发人员创建和消费各种Web服务。结合Spring框架,可以轻松地在Java应用程序中实现Web服务。本教程将深入探讨如何利用Apache CXF 2与Spring 2.5来构建和使用WebService。 ...
### CXF 开发 WebService 服务端详解 #### 一、引言 随着企业级应用对服务化的不断追求,Web Service 成为了实现不同系统间通信的重要手段之一。Apache CXF 是一个高性能、易于使用的框架,它支持多种协议,如SOAP...
cxf(Apache CXF)是一款开源的WebService框架,用于开发webservice客户端和服务器端。它提供了许多有用的功能,如自动生成服务桩、客户调用桩和WSDL文档等,使得开发webservice更加容易和高效。 Web Service 概念 ...
最近用CXF开发webservice,发现老是报jar包的错误,但是又不能把所有从官网下载下来的都复制过来。官网下载的有好几十个呢,这是官网CXF的下载地址:http://cxf.apache.org/download.html。于是网上整理了一下,做个...
总结来说,Apache CXF提供了一整套工具和框架,使得开发和部署Web服务变得简单易行。它支持多种Web服务标准和模型,允许灵活的消息格式和协议选择,以及无缝的容器集成。通过理解CXF的工作原理和配置方法,开发者...
这个标题“cxf开发webservice所用jar包”表明我们正在讨论一组CXF框架所需的JAR文件,这些文件对于利用CXF开发基于Web服务的应用程序至关重要。在描述中提到“cxf-2.4.1整合spring3.0所用jar包”,这暗示了我们使用...
Apache CXF是一个强大的开源Web服务框架,专门用于简化和加速基于Java的Web服务开发。它不仅支持SOAP(简单对象访问协议)和RESTful(表述性状态转移)服务,还提供了丰富的特性和工具集,如拦截器,使得开发者可以...
在Java世界中,开发Web Service是一项常见的任务,Apache CXF是一个强大的开源框架,它使得这个过程变得简单而高效。本篇文章将探讨如何利用CXF来创建和消费Web Service,帮助开发者更好地理解和运用这个工具。 **...
本文档将详细介绍如何基于Apache CXF框架进行WebService接口的开发与调用。 #### 二、环境搭建与依赖配置 为了确保能够顺利进行WebService接口的开发工作,首先需要确保项目中已经正确配置了CXF的相关依赖。以下为...
总的来说,"05-ApacheCamel-CXF-WebService"项目涵盖了Camel和CXF的深度集成,涉及Web服务的开发、测试和消费。通过这个项目,开发者可以学习到如何使用这两个强大的工具来构建健壮且可扩展的集成解决方案。无论是...
在IT行业中,Web服务是一种广泛使用的通信协议,它允许不同系统之间...总之,Apache CXF为开发者提供了强大且灵活的工具,简化了Web服务的开发流程。通过学习和实践,我们可以利用CXF构建高效、可扩展的分布式系统。
Apache CXF是一个全面的服务开发框架,它支持多种Web服务标准,如SOAP、WS-*协议栈、RESTful服务等。CXF提供了丰富的API和工具,使得开发者可以快速构建服务提供者和服务消费者。同时,CXF也集成了多种传输协议,如...
在IT行业中,CXF是一个广泛使用的开源框架,用于开发和实现Web服务,无论是SOAP(简单对象访问协议)还是RESTful风格的服务。本篇文章将详细探讨如何利用CXF框架开发一个Web服务客户端,以及如何进行测试。 一、CXF...
在开发Web服务时,Apache CXF是一个非常强大的框架,它提供了与Spring的紧密集成,使得开发者可以方便地通过注解和Spring配置来暴露和消费Web服务。本篇内容将深入探讨如何使用CXF和Spring来创建和使用Web服务。 ...
【标题】:“CXF开发Web服务端” 在Java世界中,Apache CXF是一个流行的开源框架,用于构建和部署Web服务。它支持多种Web服务规范,包括SOAP、RESTful API以及WS-*扩展。CXF允许开发者以Java SE或Java EE环境轻松...
根据提供的文件内容,以下知识点是关于基于Apache CXF实现WebService开发的详细说明: Apache CXF是一个开源服务框架,它使得创建和开发WebService变得简单。CXF提供了完整的WebService功能,包括对JAX-WS的支持...
Apache CXF 是一个开源的 Services 框架,CXF 帮助您利用 Frontend 编程 API 来构建和开发 Services ,像 JAX-WS 。这些 Services 可以支持多种协议,比如:SOAP、XML/HTTP、RESTful HTTP 或者 CORBA ,并且可以在...
在Java世界中,开发Web服务的一个常见选择是使用Spring框架结合Apache CXF。Spring作为一个强大的轻量级框架,提供了丰富的功能,包括依赖注入、AOP(面向切面编程)以及企业级应用的支持。而CXF则是一个优秀的开源...