我是一名Java程序员,并探索实现JAX服务,以便与我们的web服务器集成。到目前为止,我还没有在网络服务方面的经验,因此希望得到每个人的专家意见。
背景是,我的公司有一个POS系统开发和内部托管使用Java .我们正在计划电子商务功能,这些功能将通过外部web开发公司和外部托管,以HTML/PHP方式实现。
因此,我们正在探索在端点上实现JAX服务,以便与运行PHP端点的电子商务服务器集成。
我做过一些研究,我的理解是:
我现在想知道,在与构建我们电子商务平台的外部web开发公司讨论实现时,什么是正确的方法。大多数网站和论坛的示例都假设两个端点上都有Java,并且两个端点都由同一个开发人员/团队实现。
根据我有限的代言人,我认为这个过程将是:
web开发公司正在实现电子商务平台,然后使用wsdl实现PHP端点。
在我们的内部POS系统需要使用外部web开发公司创建的web服务的情况下,他们会将wsdl传递给我,我将使用wsdl对它们进行调用。
这是正确的做法吗?
非常感谢。
干杯,亚瑟
发布于 2014-03-02 13:09:04
在Java中,实际上有两种方法来启动web服务的设计。您可以先创建WSDL ()契约(合同优先方法),然后让Java或一些框架工具为您创建Java框架类,您可以使用这些类来实现每个操作的逻辑,也可以通过代码优先方法开始,实现每个web方法及其逻辑,然后让Java或一些外部框架工具为您生成WSDL契约。
无论从哪种方式开始,结果都应该非常相似,并且与平台无关。基于WSDL的web服务的标准消息格式是SOAP (简单对象访问协议),它基于定义为平台和编程语言无关的eXtensible标记语言。
因此,在实现了您的服务并启动了WS端点的服务器之后,将?wsdl添加到端点URL的末尾后,应该将WSDL契约返回给调用方,它可以用于为所需的编程语言创建客户端存根,这进一步简化了从web服务发送和接收消息的过程。但是,请注意,可能不需要创建存根文件,因为所有信息都可能直接从WSDL协议中解析。由于缺乏有关PHP的知识,我无法详细说明如何直接从PHP调用WS,或者是否需要/建议创建存根文件。
为了从服务中调用其他WS,您需要在一个web方法中创建一个WS客户机,并调用远程WS提供的一个或多个操作,并在您的web方法中处理响应。
因为我不确定您是否正在使用任何像f.e这样的(Java)框架。Apache我这里没有给出任何代码示例。为了在服务中集成外部web服务,您还可以查看阿帕奇骆驼,它为包括CXF在内的众多基于Java的框架提供了集成支持。在这里,您的web服务被视为一个Consumer,而您需要调用的其他外部服务则作为Producers处理。您的内部服务和外部服务之间的交互在这里建模在一个路由中,您可以在其中应用各种企业集成模式(EIP),比如将一个响应中包含的多个元素分割成不同的对象,您还可以并行地处理这些对象。
通常,如果您遵循代码优先方法,那么所涉及的步骤的枚举看起来是正确的,但正如前面提到的,您也可以首先定义您的契约。根据您对WSDL/XSD语法的知识(您对确切语法的了解越少,您就应该越多地使用代码优先方法),在您还在开发您的实现的内部逻辑的同时,首先对契约进行分析可能会使PHP方面的集成更快。
发布于 2014-03-03 09:59:27
it is possible to mix end-point technologies, and specifically in my case JAX-WS as our endpoint and PHP SoapClient on our e-commerece end-point PHP SOAP Client to consume JAX-WS with Basic Http Authentication Using PHP SoapClient with Java JAX-WS RI (Webservice)这正是引入webservice概念的确切目的。您不必担心您的客户端和服务器是在哪个平台或语言上实现的。客户机和服务器将按照wsdl中商定的那样,简单地交换xml消息(与平台无关)。
继续你的理解吧。
https://stackoverflow.com/questions/22127090
复制相似问题