我对作为实现可用的Web服务的不同定义和实现感到有点困惑。需要澄清一下。
我到目前为止使用过
如果供应商给我一个特定格式的XML,我可以发送填充数据来请求,我在互联网上做一个简单的HTTP POST,传递XML字符串作为有效负载,这是一个Web服务调用?如果是这样,它是否有特定的名称,这种Web服务?因为很明显,它不使用像Axis,WSDL或SOAP这样的东西来建立这种连接。
这个的变体是如果供应商给我一个XSD,我使用JAXB从中创建一个java类并传入该对象的序列化版本,最终与选项相同1。
RESTful Web服务:供应商为我提供了一个类似http://restfulservice/products的URL,我可以对URL发出HTTP请求,并根据我使用的HTTP动词,调用适当的操作并通过丝。
我只读过关于<有一个模糊的想法
SOAP。这是如何工作的?我已经阅读了W3Schools教程,并且我不确定有一种非常特殊的XML形式,它根据W3C标准进行标准化,我们使用这些标准传递与选项1中相同的消息。但是如何这在现实生活中有效吗?供应商发给我什么?我会生成课程吗?我是否将一些对象序列化并将http发布到一个地址?或者生成的对象本身是否有为我做这些的连接方法?
WSDL怎么样?供应商何时向我发送WSDL以及如何使用它?我想我可以从中生成类。如果是,那么如何处理生成的类?
我什么时候需要轴jar来从供应商发送的东西生成类?
正如您所看到的,我对可用的各种Web服务有一些明确的和其他大多模糊的想法。如果有人应该澄清和/或指向更多的现实资源,将会有所帮助。我在互联网上看了一下Java Web Services,并且向我抛出的无数四个字母的首字母缩略词让我头晕目眩。
由于
答案 0 :(得分:4)
如果供应商给我一个特定的格式 我可以发送的XML格式 请求的数据和我做一个简单的 通过互联网传入的HTTP POST XML String作为有效载荷,就是这样 网络服务电话?如果是的话,有没有 它的具体名称,这种网络 服务?
这仍然是一项网络服务,是的。它没有“官方”名称,我通常称之为XML-over-HTTP,主要是因为我想不出更好的名字。
SOAP。这是怎么回事?我读过了 W3Schools教程和我 undertsand有一个非常 XML的特定形式 根据W3C标准化 我们用来传递相同的标准 我们在选项1中所做的那样的消息
SOAP围绕您发送的消息类型提供了一个标准的包装层(1)。此包装器提供了一些信息,例如您要调用的操作的指示。它还可以提供安全服务,交易信息等。这通常很薄。
WSDL怎么样?什么时候供应商 发给我WSDL,我该怎么办呢 ?我想我可以从中生成类 它。如果是,那我该怎么办呢 生成的类?
同样,WSDL是一个相当薄的层,这次是围绕XML Schema。它定义了SOAP消息将在运行时调用的操作,以及请求和响应的Schema类型。它是一种形式化XML文档交换接口的方法。
比如说,你有一个XML Schema,并且有一个你所描述的Web服务
使用WSDL和SOAP,您可以稍微扩展一下:
正如您所看到的,它基本上是相同的过程。不同之处在于SOAP / WSDL为工具提供了额外的信息和上下文,允许这些工具为您完成更多工作。但这并没有太大的不同。
答案 1 :(得分:0)
如果从某个地方获得WSDL文档,您真正需要知道的是它定义了一个服务接口。您可以通过您喜欢的语言的绑定生成器运行它,以生成一些可用于调用服务的代码。通常,这意味着您将使用HTTP上的SOAP消息通过线路与服务进行通信。 SOAP只是一个发送非常随意的XML消息的包装器。
Axis是一个用Java(客户端和服务器端)完成这些工作的库。我怀疑其他库中有更好的实现。