编程语言
首页 > 编程语言> > Java-JAX-WS:动态提供程序

Java-JAX-WS:动态提供程序

作者:互联网

我有一个环境,该环境承载着带有易于绑定到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应该做什么

>为您的每个非肥皂服务创建SOAP Web服务(我们称其为“基础Web服务”).
>配置BPEL引擎来编排“基本Web服务”的组成/组合.
>使用BPEL端点创建能够在运行时(每个请求,如果需要)组成/组合“基本Web服务”的客户端.注意:这不需要更改BPEL引擎配置

这样,您将拥有一个非常强大的平台来进行业务流程编排,将来可以扩展到更复杂的用例.

希望能帮助到你 …

标签:jax-ws,java
来源: https://codeday.me/bug/20191201/2078058.html