我正在开发一个应用程序,它将以异步方式向多个服务提供商发送请求,整理响应并将结果显示给用户.
我打算创建一个用于处理每个服务提供者的组件.组件将松散耦合,因此添加或删除服务提供商应该非常容易.

组件会
我们可以在这里使用Apache Service Mix吗?它是否足够快以在不到5秒的时间内处理请求 - 响应周期(假设服务提供商在不到一秒的时间内发送响应).
要么
我们可以使用任何其他ESB并且ESB足够快以满足我们的要求吗?
提前致谢.
Shardul.
目前,我们正在尝试使用Mule ESB构建代理,该代理提供内部Web服务,然后使用内部Web服务的提供参数转到外部soap服务.一旦我得到了,我将改变肥皂含量和布局.然后第三步结果必须由Mule计算.
但在我们到达第2步和第3步之前,先让代理开始.目前我正在查看http://www.mulesoft.org/documentation/display/MULE3USER/Proxying+Web+Services
但是提供的WSProxyService不起作用.代码似乎适用于Mule 2.2.我尝试重新创建它,看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns="http://www.mulesoft.org/schema/mule/core"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:spring="http://www.springframework.org/schema/beans"
xmlns:http="http://www.mulesoft.org/schema/mule/http"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/3.2/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/3.2/mule-http.xsd">
<spring:bean name="WSProxyService" class="org.mule.module.cxf.WSProxyService">
<spring:property name="wsdlFile" value="resources/tisclientws.wsdl"/>
</spring:bean>
<flow name="HttpProxyService">
<http:inbound-endpoint address="http://localhost:8090/tis/proxy" exchange-pattern="request-response"/>
<component>
<spring-object bean="WSProxyService" />
</component>
<http:outbound-endpoint address="ADDRESSHERE/tisclientws.asmx" exchange-pattern="request-response"/>
</flow>
</mule>
Run Code Online (Sandbox Code Playgroud)
然而,这给出了错误
Exception stack is:
1. Service not set, this service has not been initialized properly. (org.mule.api.lifecycle.InitialisationException)
org.mule.module.cxf.WSProxyService:254 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/lifecycle/InitialisationException.html)
Run Code Online (Sandbox Code Playgroud)
谁能帮我?我没有运气就尝试了各种各样的事情
最后但同样重要的是,我还查看了http://www.mulesoft.org/documentation/display/MULE3USER/Consuming+Web+Services+with+CXF,但问题是提供的内部服务有多个参数而没有内部WSDL .
感谢您的回复,它帮助了很多.经过一些反复试验,我得到了......有点......
目前,代理为我提供了一个本地WSDL(按预期工作).但仔细观察后,WSDL的SOAP 1.2部分保持不变,仍然指向原始位置.更糟糕的是,调用SOAP 1.1部分时会出错(原始版本工作正常).
所以我正朝着正确的方向前进.现在只是解决这些问题.
除此之外,也许有人可以指出我正确的方向.假设我想从外部服务获取输出,只计算所有小时数,然后以XML格式将其返回到本地服务.这属于自定义变压器类别吗?
我使用了以下代码:
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns="http://www.mulesoft.org/schema/mule/core"
xmlns:cxf="http://www.mulesoft.org/schema/mule/cxf"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" …Run Code Online (Sandbox Code Playgroud) BPM和Workflow有什么区别?
另外,在BPEL和ESB之间?
下面的 Endpoint_BPS_CreateCaseService/UpdateCaseService 端点都指向在 WSO2 BPS 上运行的单向 BPEL 服务。WSO2 BPS 在被调用时立即返回 HTTP 202 接受消息。
如果我使用的客户端应用程序没有获得有效的 SOAP 信封作为响应,它就会抛出一个错误,因此我将使用 ESB 中的代理服务来包装 BPEL 流程。
如何使用 WSO2 ESB 代理服务将 SOAP 信封转发到下面的 Endpoint_BPS_*,然后将 SOAP 信封响应返回给我的客户端应用程序?
如果端点不可用或超时,我还想执行 faultSequence "ProcessFault"。我以前使用 OUT_ONLY 来解决上面的响应问题,但这意味着我无法检测端点问题。除非有可能以某种方式同时进行?
我尝试过的另一件事是克隆消息,但这有点混乱。
非常感谢任何帮助
<proxy xmlns="http://ws.apache.org/ns/synapse" name="BPSProxyService" transports="https,http" statistics="disable" trace="enable" startOnLoad="true">
<target faultSequence="ProcessFault">
<inSequence>
<log level="full">
<property name="MESSAGE" value="BEGIN BPSProxyService" />
</log>
<switch source="//*[local-name()='Operation']">
<case regex="create">
<send>
<endpoint key="Endpoint_BPS_CreateCaseService" />
</send>
</case>
<case regex="update">
<send>
<endpoint key="Endpoint_BPS_UpdateCaseService" />
</send>
</case>
</switch>
</inSequence>
<outSequence>
<property name="HTTP_SC" value="200" scope="axis2" /> …Run Code Online (Sandbox Code Playgroud) 当我尝试在我的mule app中使用twitter连接器时,我遇到以下错误.
我已经在我的依赖项中(并在我耳中)拥有mule-core.实际上,我的依赖看起来很好..
<dependency>
<groupId>org.mule</groupId>
<artifactId>mule-core</artifactId>
<version>3.4.0</version>
<type>jar</type>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.mule.modules</groupId>
<artifactId>mule-module-twitter</artifactId>
<version>LATEST</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
等..等..
这是堆栈:
Caused by: java.lang.NoClassDefFoundError: org/mule/api/ConnectionException
13:44:06,985 ERROR [stderr] ([].BATCH.stage1.02) at org.mule.twitter.connectivity.TwitterConnectorConnectionFactory.makeObject(TwitterConnectorConnectionFactory.java:37)
13:44:06,985 ERROR [stderr] ([].BATCH.stage1.02) at org.apache.commons.pool.impl.GenericKeyedObjectPool.borrowObject(GenericKeyedObjectPool.java:1220)
13:44:06,985 ERROR [stderr] ([].BATCH.stage1.02) at org.mule.twitter.connectivity.TwitterConnectorConnectionManager.acquireConnection(TwitterConnectorConnectionManager.java:315)
13:44:06,986 ERROR [stderr] ([].BATCH.stage1.02) at org.mule.twitter.connectivity.TwitterConnectorConnectionManager.acquireConnection(TwitterConnectorConnectionManager.java:34)
13:44:06,986 ERROR [stderr] ([].BATCH.stage1.02) at org.mule.twitter.process.ManagedConnectionProcessInterceptor.execute(ManagedConnectionProcessInterceptor.java:60)
13:44:06,986 ERROR [stderr] ([].BATCH.stage1.02) at org.mule.twitter.process.ManagedConnectionProcessInterceptor.execute(ManagedConnectionProcessInterceptor.java:21)
13:44:06,987 ERROR [stderr] ([].BATCH.stage1.02) at org.mule.twitter.process.RetryProcessInterceptor.execute(RetryProcessInterceptor.java:69)
13:44:06,987 ERROR [stderr] ([].BATCH.stage1.02) at org.mule.twitter.connectivity.ManagedConnectionProcessTemplate.execute(ManagedConnectionProcessTemplate.java:35)
13:44:06,987 ERROR [stderr] ([].BATCH.stage1.02) at org.mule.twitter.processors.UpdateStatusMessageProcessor.process(UpdateStatusMessageProcessor.java:150)
13:44:06,988 ERROR [stderr] ([].BATCH.stage1.02) at …Run Code Online (Sandbox Code Playgroud) 我在wso2 esb中有一个http代理服务,当我尝试这项服务时,我有一个错误如下:
<TryitProxyError xmlns:h="http://wso2.org/ns/TryitProxy" h:status="SOAP envelope error">org.apache.axis2.AxisFault: Transport error: 411 Error: Length Required</TryitProxyError>
Run Code Online (Sandbox Code Playgroud)
但是当在soapUI中尝试这个服务回复时...
我们有一个庞大而复杂的文件需要很长时间才能反汇编(比方说,一小时).如果我们可以在消息离开接收管道时分离消息并在文件完成之前立即开始他们的行程,那将是很好的.我可以说这不容易,但它有可能吗?
在Mule Studio 3.5中,直接在XML和Flow中,我有以下声明:
<component class="fr.esb.bo.GenerateReportFileComponent" doc:name="BOreport">
<spring:property name="boServices" ref="boServices"/>
</component>
Run Code Online (Sandbox Code Playgroud)
当我用这个启动Mule时,我收到以下错误
org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: Invalid content was found starting with element 'spring:property'. One of '{"http://www.mulesoft.org/schema/mule/core":annotations, "http://www.mulesoft.org/schema/mule/core":abstract-interceptor, "http://www.mulesoft.org/schema/mule/core":interceptor-stack, "http://www.mulesoft.org/schema/mule/core":abstract-entry-point-resolver-set, "http://www.mulesoft.org/schema/mule/core":abstract-entry-point-resolver, "http://www.mulesoft.org/schema/mule/core":abstract-object-factory, "http://www.mulesoft.org/schema/mule/core":abstract-lifecycle-adapter-factory, "http://www.mulesoft.org/schema/mule/core":binding}' is expected.
Run Code Online (Sandbox Code Playgroud)
我明白了,但是如何将我的boServices bean提供给我的组件?使用定制变压器,这很好用.
我一直在从事一个项目,该项目从各种第三方数据源收集数据并将数据挖掘到我们的数据存储 (DI) 中。为此,我们一直在使用 Pentaho。
我想知道这是否也可以用 ESB(骆驼或骡子)来完成?ESB 带来了哪些 DI 没有提供的其他特性?
我已经阅读了很多关于 ESB 和 DI 的文章,但没有一篇能够解决这个查询。我还阅读了有关第三方数据源的 mule 数据连接器的信息。
我试图通过阅读这篇文章来解决何时使用 Apache Camel 是合适的还是不合适的 - https://dzone.com/articles/when-use-apache-camel。文章中提到,在服务数量较少的情况下,使用Camel这样的集成框架可能会有些矫枉过正,这是有道理的。但是我被这句话搞糊涂了
尽管 FuseSource 提供商业支持,但我不会将 Apache Camel 用于非常大的集成项目。在大多数情况下,ESB 是完成这项工作的正确工具。它提供了许多附加功能,例如 BPM 或 BAM。当然,您也可以使用多个单一的框架或产品并“创建”您自己的 ESB,但这是浪费时间和金钱(在我看来)。
这是因为集成框架缺少 ESB 提供的组件吗?如果有,那些是什么?
esb ×10
mule ×5
apache-camel ×3
java ×2
wso2 ×2
wso2esb ×2
biztalk ×1
biztalk-2013 ×1
business-process-management ×1
components ×1
fuseesb ×1
pentaho ×1
soa ×1
spring ×1
sql-server ×1
twitter ×1
workflow ×1