标签: esb

作为成员的Action委托不编译

为什么这段代码不能编译:

public class FakeESBSingleMessage<T> : IBusEnabledClass
{
    private Action<T> SubscribedAction { get; set; }

    #region IBusEnabledClass

    public void Publish<T>(T message)
    {
        SubscribedAction(message);
    }

    public void Subscribe<T>(string ID, Action<T> action)
    {
        SubscribedAction = action;
    }

    #endregion
}
Run Code Online (Sandbox Code Playgroud)

它给出了以下错误:

错误37参数1:无法从'T [..FakeESBSingleMessage.cs(8)]'转换为'T'..FakeESBSingleMessage.cs 16 30
错误39无法将类型'System.Action [mscorlib.dll]'隐式转换为' System.Action [mscorlib.dll]'..FakeESBSingleMessage.cs 21 32
错误36委托'System.Action'有一些无效的参数..\FakeESBSingleMessage.cs 16 13

我正在尝试创建一个假的ESB组件进行测试,它保存了在Subscribe上传递的委托,并在调用发布时调用它.

c# esb

0
推荐指数
1
解决办法
407
查看次数

更改 ESB 中的 xml 节点名称

我想更改 WSO2 ESB 中的 xml 节点名称,即。我有以下 xml

<MessageStatus xmlns="foo.example.org">
<ErrorCode>$1</ErrorCode>
<Message>$2</Message>
</MessageStatus>

我希望它是这样的

<ItemName xmlns="foo.example.org">
<ErrorCode>$1</ErrorCode>
<Message>$2</Message>
</ItemName>

以 ItemNames 作为属性;我的意思是它们会动态变化。有什么方法可以使用 ESB 中介器进行此更改吗?

xslt esb wso2 wso2-esb

0
推荐指数
1
解决办法
884
查看次数

在wso2 esb中更改标题

我使用wso2 esb代理服务,在我的一个序列中我想在发送到端点之前删除标头,但它在soapUI中无法正常工作但是在ESB中"尝试此服务".,这是我的序列源视图:

<sequence xmlns="http://ws.apache.org/ns/synapse" name="SECBalanceInQueryYaghout">
<log level="full" category="FATAL"/>
<header name="Action" scope="default" action="remove"/>
<property xmlns:ns="http://org.apache.synapse/xsd"     xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:p="http://tempuri.org/"     name="MethodName" expression="local-name(//*[local-name()='Body']/*[1])" scope="default"     type="STRING"/>
<property xmlns:tem="http://tempuri.org/" xmlns:ns="http://org.apache.synapse/xsd"  name="Token" expression="//tem:*[1]/tem:Token" scope="default" type="STRING"/>
<property name="ElementCode" value="test" scope="default" type="STRING"/>
<property name="OperationCode" value="temp" scope="default" type="STRING"/>
<property name="ApplicationCode" value="jj" scope="default" type="STRING"/>
<property name="applicationPassword" value="123" scope="default" type="STRING"/>
<property xmlns:tem="http://tempuri.org/" xmlns:ns="http://org.apache.synapse/xsd" name="PAN" expression="//tem:*[1]/tem:PAN" scope="default" type="STRING"/>
<property xmlns:tem="http://tempuri.org/" xmlns:ns="http://org.apache.synapse/xsd" name="PIN2" expression="//tem:*[1]/tem:PIN2" scope="default" type="STRING"/>
<property xmlns:tem="http://tempuri.org/" xmlns:ns="http://org.apache.synapse/xsd" name="BillID" expression="//tem:*[1]/tem:billID" scope="default" type="STRING"/>
<property xmlns:tem="http://tempuri.org/" xmlns:ns="http://org.apache.synapse/xsd" name="PayID" expression="//tem:*[1]/tem:payID" scope="default" type="STRING"/>
<property xmlns:tem="http://tempuri.org/" xmlns:ns="http://org.apache.synapse/xsd" name="Amount" expression="//tem:*[1]/tem:amount" …
Run Code Online (Sandbox Code Playgroud)

xml esb wso2 wso2esb

0
推荐指数
1
解决办法
1736
查看次数

Junit Test测试Mule Flow中的Http Outbound端点

我有一个基本的Mule ESB应用程序,其基本流程如下:"Http入站端点(请求 - 响应模式) - >记录器 - > HTTP出站端点(请求 - 响应模式) - > Java组件"

查询:如何编写junit测试用例来测试上述流程.可以看出,我有一个HTTP出站端点(请求 - 响应模式),它指的是一些大型应用程序,它执行大量处理然后返回响应.我是否会模拟此HTTP出站端点?我不想单独测试HTTP出站端点(请求 - 响应模式).我想对整个流程进行junit测试.

提前致谢.Jai Shammi Raj Kulkarni

unit-testing esb junit4 mule mule-studio

0
推荐指数
1
解决办法
2565
查看次数

CAMEL或其他企业集成框架是否更适合此用例?

我的应用程序需要作为中间件(MW)工作,它从各个客户获得订单(以XML的形式),其中包含--------------优先级1供应商ID,其中客户可以发送XML到这些组件之一

1)JMS queue
2)File system
3)HTTP
4)Web service request(rest/soap)
Run Code Online (Sandbox Code Playgroud)

该MW将首先验证传入请求并将确认发送给通过其首选信道请求订单的客户.传入的XML中存在通道和客户端点信息.

一旦获得订单,它需要通过xml形式的优先通道向不同的供应商发送订单请求.我的数据库中有供应商及其首选渠道信息.

所以它是企业集成的用例.

我计划使用核心Java技术来做到这一点.这是我计划的方法.

将为每种类型的传入请求(JMS队列,文件系统,HTTP,Web服务请求(休息/肥皂))提供四个侦听器/条目端点.这些监听器将把xml字符串放在jms队列中.这将作为接待员工作,并使过程异步.

现在我将拥有将在队列中监听的jms使用者.(消费者可以在同一系统上或根据生产者机器上的负载而与生产者不同).此使用者将xml字符串解析为java对象.执行验证.将确认发送给客户(确认需要根据客户的喜好发送.我将使用确认处理器工厂,它将根据喜好发送确认).验证完成后,将此pojo转换为另一种pojo格式,以便xstream/jaxb进一步将其编组为xml格式,并在其首选通道上发送给供应商(供应商首选项存储在db中),如通过soap,jms,文件请求等.

有些我遇到过这个CAMEL链接http://java.dzone.com/articles/open-source-integration-apache,看起来它提供了完美的解决方案,发现这是企业集成的用例.

专家请建议Camel为此提供正确的解决方案.或者像Spring集成的其他一些企业集成框架,ESB在这种情况下会更加有用.如果有人能指出ESB解决这种用例的资源.这真的很有帮助.

由于时间限制,我无法探索所有解决方案,因此寻找专家建议,以便集中精力于一个.

java esb apache-camel spring-integration enterprise-integration

0
推荐指数
1
解决办法
334
查看次数

NServicebus层次结构和结构

我刚刚开始学习NServicebus(和一般的SOA)并且有一些问题和要点我需要澄清解决方案通常是如何构建的和常见的最佳实践:

  1. 该文档并未真正解释端点是什么.从我收集的内容来看,它是一个部署单元,您的服务将有一个或多个端点.它是否正确?

  2. 您正在开发的每个服务都有一个VS解决方案被认为是最佳做法吗?使用消息项目,然后是每个端点的项目,最后是与包含域层的端点共享的项目?

  3. 根据我的阅读,服务通常由单个组件组成.可以(或应该)服务中的任何组件访问同一个数据库,还是应该是每个组件一个数据库?

感谢您提供的任何澄清或见解.

soa esb nservicebus

0
推荐指数
1
解决办法
260
查看次数

在Mule消费没有港口的宁静服务

我在公共IP中部署了一个restful服务,因此没有与之关联的端口号.我需要在mule中调用该服务并创建工作流.

我可以使用下面指定的端口号来使用服务,但是对于没有关联端口号的服务,我无法执行相同操作.

<http:listener-config name="HTTP_Listener_Configuration" host="localhost" port="8105" doc:name="HTTP Listener Configuration" />
    <http:request-config name="HTTP_Request_Configuration" host="localhost" port="8080" basePath="/onlineexam" doc:name="HTTP Request Configuration"/>
Run Code Online (Sandbox Code Playgroud)

请帮忙

rest esb mule

0
推荐指数
1
解决办法
1065
查看次数

将 CXF 服务的客户端接收超时设置为 4 分钟以上

我已经生成了一个 CXF 服务并120000ms = 2min为两者设置了超时:

requestContext.put("javax.xml.ws.client.receiveTimeout", 120000);
requestContext.put("javax.xml.ws.client.connectionTimeout", 120000);
Run Code Online (Sandbox Code Playgroud)

它工作正常,我已经对其进行了测试20s, 1min, 3min- 每次它都在等待响应的时间。

但是,当我想将其设置为5min. 服务仅等待响应~240800ms = ~4min

我正在调用 jboss esb 服务。这个持续最大5min。CXF 服务是.jar从我的 PC的简单应用程序内部调用的,因此之间没有其他服务器/容器(如 tomcat 等)。

有什么想法可以修复我的超时设置吗?

用一个 Apache CXF 3.0.1

编辑

我现在意识到我收到 2 条不同的消息取决于我的超时设置:

  • 如果我将它设置为<=4min(通过我的或@pedrofb 方法),那么在这段时间之后我会得到:

    org.apache.cxf.interceptor.Fault:无法发送消息。在 org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:64) 在 org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307) 在 org.apache.cxf.endpoint.endpoint. .doInvoke(ClientImpl.java:516)

    引起:java.net.SocketTimeoutException: SocketTimeoutException invoking http://esb:8080/MyService/ebws/Category/MyService : Read timed out

  • 如果我将它设置为>4minor 0,我会得到:

    javax.xml.ws.soap.SOAPFaultException: 没有收到服务 [Category:MyService] 的响应,被告知不要重试。

老实说,我很困惑什么是预期结果(我认为是第一个)

编辑 2

我已经MyService通过 …

java web-services timeout esb jboss-esb

0
推荐指数
1
解决办法
7638
查看次数