1

我正在尝试以编程方式检索配置为 WSO2 ESB 的端点的元数据(例如:ServiceName、WebMethods、具有返回类型的输入/输出参数等)。有人可以指导我使用某种方式/文档来帮助我获取这些数据。

4

3 回答 3

0

为了进一步改进 Abdul 的问题,我们正在开发一个 Web 服务网关,在一侧的旧客户端和另一侧是外部 Web 服务之间。我们在 WSo2 中创建了一个模板/序列,我们在其中捕获遗留客户端请求并将其重定向到基于内部协议的正确 Web 服务。

外部 Web 服务在 WSo2 中注册为端点。到目前为止,我们一直在使用管理控制台手动配置这些端点。我们正在考虑使这一步自动化,以便我们的网关能够访问 WSo2 并提供 WSDL URL。然后,类中介将调用 WSo2 / Synapse API 以将此端点保存在 Synapse 配置中。我们在这方面没有成功。

我们还阅读了文档,其中说不建议通过调解器更改突触配置,因此想看看是否有其他选项可以为我们完成这项工作。

于 2012-07-17T11:14:28.200 回答
0

一种解决方法是从客户端本身创建这些端点。这可以通过调用 carbon 框架公开的 AdminService API 来完成。在 carbon 中,任何 carbon 组件的前端都通过管理服务与其后端通信。例如,如果我们采用与端点相关的功能,当您使用管理控制台创建/删除或执行任何功能时,它会依次通过“EndPointAdmin”管理服务调用相应的后端。因此,我相信,如果您想以编程方式创建这些端点,您可以直接从您的客户端调用 EndPointAdmin 后端管理服务(通过 EndPointAdminStub - 它是与上述后端服务对应的客户端存根)并满足您的要求。

问候, 普拉巴斯

于 2012-07-28T20:44:29.543 回答
0

不幸的是,目前还不清楚你想做什么。这里有一些示例如何访问属性(元数据?)

在代理/序列访问属性中:

<property name="some name" expression="get-property('registry','conf:resource/path')"/>
<property name="some name" expression="get-property('registry',gov:resource/path')"/>
<property name="some name" expression="get-property('registry','resourceName')"/>

或者在自定义调解器内部:

String property = (String)messageContext.getProperty("nameOfThePropery");

或者在自定义调解器中(从传输层获取文件名):

org.apache.axis2.context.MessageContext axis2messageContext = ((Axis2MessageContext) messageContext).getAxis2MessageContext();
// print the filename of the current transport
myLog.info("FileName: " + axis2messageContext.getTransportIn().getName());

希望这可以进一步帮助您,否则可以改善您的问题。

于 2012-07-13T13:14:57.393 回答