我有一个环境,该环境承载着带有易于绑定到XML的输入和输出的许多“服务”。我希望能够通过SOAP动态公开一个或多个服务。换句话说,用户必须能够将服务A和B组合到一个Web服务中(并可以选择配置操作的名称等)。
这意味着我需要能够动态生成WSDL或其中的至少一部分(尤其是可以从服务请求的XSD定义),并且我需要能够动态创建和发布都使用单个Provider的新端点。类(基于上下文和不基于上下文)将确定您尝试调用的服务。它将取消封送XML,调用服务,封送响应并将其发送回。
JAX-WS有可能吗?我非常想利用JAX-WS随附的现有功能(特别是WS- *等)。如果JAX-WS无法实现,还有其他选择吗?
最佳答案
实际上,用JAX-WS很难实现您的用例(甚至是不可能的)。但是不用担心,您不是第一个有此要求的人。
想象一个大公司,其中有几个需要集成的旧系统。然后,他们花费了大量金钱和时间来实现基于SOAP Web服务的SOA架构。这些服务被组合(编排)以创建业务流程。
示例:业务流程“创建合同”需要执行Web服务A,B和C。
但是,如果更改业务流程需要一些代码源更改,会发生什么???公司需要有一个开发团队来保持这些流程的最新状态。
为了解决这个问题,创建了 BPEL的动态绑定。该技术使您可以在运行时根据所请求服务的参数来组成新服务!
简而言之,如果定义多个“基本Web服务”,然后配置BPEL服务器以在运行时动态组合这些服务,您需要做些什么!
请阅读Oracle的this article以获得想法...
并在这里检查JBoss BPEL user guide。
在您的情况下使用BPEL应该怎么做
这样,您将拥有一个非常强大的平台来进行业务编排,将来可以扩展到更复杂的用例。
希望能帮助到你 ...