Tag: mule

Mule – 如何在Java Component中访问流名称?

我们确实在许多流之间共享子流。 我想在我的子流程中找到Flow是一个呼叫… MEL: – #[flow.name] 仅在Logger中工作。 我甚至无法将此值传递给Session / Anyother属性(通过set属性连接器),因此我可以使用message.getProperty方法进行访问。 提前致谢。

使用连接器将文件上载到salesforce

我在mule中建立了一个流程,使用“Salesforce”连接器在Salesforce中创建一个案例。 现在我需要使用相同的mule流将文件上传到该案例。 这可以通过以下代码以编程方式完成: 尝试{ File f = new File(“c:\java\test.docx”); InputStream is = new FileInputStream(f); byte[] inbuff = new byte[(int)f.length()]; is.read(inbuff); Attachment attach = new Attachment(); attach.setBody(inbuff); attach.setName(“test.docx”); attach.setIsPrivate(false); // attach to an object in SFDC attach.setParentId(“a0f600000008Q4f”); SaveResult sr = binding.create(new com.sforce.soap.enterprise.sobject.SObject[] {attach})[0]; if (sr.isSuccess()) { System.out.println(“Successfully added attachment.”); } else { System.out.println(“Error adding attachment: ” […]

MQDestination覆盖记帐标记值

我试图在我的系统从入站队列收到的消息上设置会计令牌。 我使用以下设置此令牌。 msg.setObjectProperty(JmsConstants.JMS_IBM_MQMD_ACCOUNTINGTOKEN,value) 我在JmsSUpport类中也有以下属性 ((JmsDestination) dest).setBooleanProperty(WMQConstants.WMQ_MQMD_READ_ENABLED, true); ((JmsDestination) dest).setBooleanProperty(WMQConstants.WMQ_MQMD_WRITE_ENABLED, true); ((MQDestination) dest).setMQMDWriteEnabled(true); ((MQDestination) dest).setMQMDReadEnabled(true); ((MQDestination) dest).setTargetClient(JMSC.MQJMS_CLIENT_NONJMS_MQ); 由于出站队列是MQDestination,我必须设置上述属性。 现在我观察到我正在设置出站消息的值。 但是当另一个应用程序从MQ读取消息时,它具有Accounting Token的默认值。 这可能是因为MQ以这种方式配置来覆盖值吗? 或者是因为其他应用程序没有正确读取MQ消息? 或者我应该使用任何其他属性来启用会计令牌? 是因为我正在设置((MQDestination)dest).setTargetClient(JMSC.MQJMS_CLIENT_NONJMS_MQ); msg被剥夺了MQMD标头?

Commons Net FTPClient与Mule无限期挂起

我遇到了Mule ESB FTP传输的问题:轮询时,运行客户端的线程将无限期挂起而不会抛出错误。 这会导致FTP轮询完全停止。 Mule使用Apache Commons Net FTPClient。 进一步研究代码,我认为这是由FTPClient的SocketTimeout没有设置引起的,有时候在从FTPClient的套接字读取行时会导致无限挂起。 当问题发生时,我们可以清楚地看到用jstack检索到的这些堆栈中的问题。 __getReply()函数似乎是问题的更直接链接。 这个在创建新的FTPClient时挂在connect()调用上: receiver.172 prio=10 tid=0x00007f23e43c8800 nid=0x2d5 runnable [0x00007f24c32f1000] java.lang.Thread.State: RUNNABLE at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:152) at java.net.SocketInputStream.read(SocketInputStream.java:122) at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283) at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325) at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177) – locked (a java.io.InputStreamReader) at java.io.InputStreamReader.read(InputStreamReader.java:184) at java.io.BufferedReader.fill(BufferedReader.java:154) at java.io.BufferedReader.readLine(BufferedReader.java:317) – locked (a java.io.InputStreamReader) at java.io.BufferedReader.readLine(BufferedReader.java:382) at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:294) at org.apache.commons.net.ftp.FTP._connectAction_(FTP.java:364) at org.apache.commons.net.ftp.FTPClient._connectAction_(FTPClient.java:540) […]

从mule esb使用.NET ASMX Web服务会引发CXFexception:401未经授权

我在另一台服务器上有一个.NET ASMX Web服务,我在另一台服务器上安装了mule standalone CE 3.4。 我有一个非常简单的流程,需要调用此.NET Web服务并传递两个字符串参数。 基本上,我公开了一个http入站端点(用于测试目的)来调用流并使用java转换器类来返回需要传递给Web服务的字符串。 这是WebServiceParamsTransformer类的代码。 public class WebServiceParamsTransformer extends AbstractTransformer { @Override public Object doTransform(Object src, String encoding) throws TransformerException { Object[] out = new Object[2]; out[0] = “Update Ticket Service”; out[1] = Base64.encode(“123456hari2013-09-16T15:52:14.0000+00.00”); return out; } } 不幸的是这不起作用 – 我收到以下错误’响应代码:401。未经授权’。 以下是错误日志的摘录: INFO 2013-09-17 13:54:13,396 [[sftest].httpConnector.receiver.02] org.apache.commons.httpclient.auth.AuthChallengeProcessor: **ntlm authentication scheme […]

在Mule 3.4中模拟while循环

我需要在我的Mule Flow中使用while循环来从自定义DAO(我使用Expression Transformer访问DAO)加载数据,直到他不再提供任何项目。 (我不知道DAO提供的项目总数。)Mule 3.4中没有内置while循环。 我的第一个想法是在SubFlow中使用递归反向引用。 SubFlow调用自己直到工作完成。 但我认为一个“无法解决的循环引用”的springframeworkexception。 流不能自称。 我的下一个想法是写一个Custom Transformer并注入SubFlow来调用循环。 我使用了David Dossot在他的回答中描述的一些技术: https ://stackoverflow.com/a/16532977/2629741 我遇到的问题不仅是原始Flow中的flowVars在SubFlow中无法访问,而且如果我尝试设置一个flowVar,我会得到一个exception(我使用flowVars进行原始Flow和SubFlow之间的通信) : org.mule.api.transformer.TransformerMessagingException: null (java.lang.NullPointerException). Message payload is of type: NullPayload 我的问题是:我如何使SubFlow中的原始Flow可访问的flowVars(反之亦然)我在Custom Transformer中调用(参见下面的类循环)? mule子流: 环形变压器: public class Loop extends AbstractMessageTransformer implements FlowConstructAware { private InterceptingChainLifecycleWrapper _flow = null; public void setFlow( final Object value ) { this._flow = InterceptingChainLifecycleWrapper.class.cast(value); } […]

导致Maven / JBehave错误的原因是什么?

我有一个产生Mule连接器的Maven项目。 它基本上是一个shell,所以我开始使用JBehave添加一些BDD测试。 我添加的第一个测试很少: public class FakeSteps extends Embedder { @Given(“I have something”) public void iHaveSomething() { System.out.println(“Have something…”); } @When(“I do something”) public void iDoSomething() { System.out.println(“Doing something…”); } @Then(“we are ok”) public void weAreOk() { Assert.assertTrue(“FAILURE!!!!!”, true); System.out.println(“We are ok.”); } } 如果我在IntelliJ中运行测试,它就会通过。 当我执行“mvn clean install”时,测试不会抛出错误,但是由于“org.apache.log4j.Priority”中的exception,构建失败: … Have something… Doing something… We are ok. […]

PHP和ESB(使用Mule)(ESB:企业服务总线)

您在何时,何地以及为何在PHP项目中使用ESB? 在哪里,何时以及为什么认为在PHP项目中使用ESB是有意义的? ESB(以及像Mule这样的ESB辅导员)是否提供PHP和本机LAMP技术所缺乏的任何function? 编辑 我对这个问题的动机源于我的假设你实际上从未真正需要mule子。 mule子将促进与外部服务的沟通,您可以在没有mule子的情况下处理。 在一天结束时,Mule也会产生成本和开销。 所以我的问题是指导有人告诉我你真正受益于ESB和Mule这样的工具的场景,或者凭借扎实的知识来猜测。 编辑2 关于Houcem回复我对他的post的评论…什么是ESB / Mule的原生LAMP答案? 编辑3 看起来像Tuxedo可能是Mule / ESB的PHP本地替代品。 有人有使用这个工具的经验吗?

Mule ZenDesk连接器的源代码?

很多MuleSoft连接器的源代码都可以在他们的GitHub页面上找到 。 但我没有找到他们的Zendesk连接器的源代码,谷歌也没有很大的帮助。 我正在寻找的原因是我仍在尝试调试“null(java.lang.UnsupportedOperationException)。 消息有效负载的类型为:ZendeskConnector $ 1“我之前发布的错误 。 我真的很难过,但我想如果我看一下它可能会给出一些线索。

从Java组件访问MuleMessage和流变量

我有一个接收有效负载(JsonData)的Java组件,如下所示: public String myMethod(JsonData payload) throws IOException { // do things with payload. } 这工作正常,但我还需要访问方法中的流变量。 我明白,为此,我需要运行myMessage.getInvocationProperty(“my-variable-name”); 但是,由于我只传递了有效负载,因此我无法访问MuleMessage。 如何更改方法以便我可以访问我的消息/属性? 我试过了: org.mule.RequestContext.getEvent().getMessage() 但它已被弃用。 此外,我已经阅读了关于这个问题的各种答案,但从未找到完整的答案。 谢谢,