我有一些代码,我需要编写一个测试,连接到供应商的SFTP服务器并将文件放在那里.现在测试是连接到他们的实际服务器,但我宁愿不这样做.理想情况下,我想在MockFtpServer中使用假的,内存中的服务器.我尝试使用那个,它在那里得到一部分,但在发出实际命令时死亡,因为它不识别它们.
有问题的代码是Mule ESB中的流程设置.
与任何编程语言一样,编写Mule
流程时要遵循的标准命名约定是什么?我发现在Mule in Action book中遵循了驼峰式约定.Mule命名约定的标准格式是什么.
可以建议标准选项吗?
我想按照这个教程创建一个Maven项目https://docs.mulesoft.com/mule-user-guide/v/3.7/building-a-mule-application-with-maven-in-studio那个时候当Studio自动构建Maven项目时,我收到此错误:updating maven project has encountered a problem There was an error running the studio:studio goal on project test
并在控制台中:
[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]
[ERROR] The project com.mycompany:test:1.0.0-SNAPSHOT (C:\Users\Rajeun\AnypointStudio\workspace\test\pom.xml) has 2 errors
[ERROR] Unresolveable build extension: Plugin org.mule.tools.maven:mule-app-maven-plugin:1.1 or one of its dependencies could not be resolved: Could not find artifact com.sun:tools:jar:1.5.0 at specified path C:\Program Files (x86)\Java\jre1.8.0_40/../lib/tools.jar -> [Help 2]
[ERROR] Unknown packaging: mule @ line 8, column 16 …
Run Code Online (Sandbox Code Playgroud) 我有一个连接到Oracle数据库的Mule应用程序.该应用程序是一个SOAP api,它允许执行SQL存储过程.我的连接器设置为使用连接池,我一直在监视连接.我的最大池大小为20,当调用数据库时,我可以看到它们打开(netstat -ntl | grep PORTNUMBER).
tcp4 0 0 IP HERE OTHER IP HERE SYN_SENT
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 …
Run Code Online (Sandbox Code Playgroud) 我在mule flow中遇到数据库事务的问题.这是我定义的流程:
<flow name="createPortinCaseServiceFlow">
<vm:inbound-endpoint path="createPortinCase" exchange-pattern="request-response">
<custom-transaction action="ALWAYS_BEGIN" factory-ref="muleTransactionFactory"/>
</vm:inbound-endpoint>
<component>
<spring-object bean="checkIfExists"/>
</component>
<component>
<spring-object bean="createNewOne"/>
</component>
</flow>
Run Code Online (Sandbox Code Playgroud)
我们的想法是,在checkIfExists中,我们验证是否存在某些数据(在数据库中)是否存在异常.如果不是,我们去createNewOne并创建一个新数据.
如果我们同时运行流程,则会在createNewOne中多次创建新对象,并且它们不应该像我们之前调用checkIfExists一样.这意味着交易无法正常运作.
既createNewOne和checkIfExists有以下注释:
@Transactional(propagation = Propagation.MANDATORY)
Run Code Online (Sandbox Code Playgroud)
muleTransactionFactory的定义如下所示
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="dataSource" ref="teleportNpDataSource"/>
<property name="entityManagerFactory" ref="npEntityManagerFactory"/>
<property name="nestedTransactionAllowed" value="true"/>
<property name="defaultTimeout" value="${teleport.np.tm.transactionTimeout}"/>
</bean>
<bean id="muleTransactionFactory" class="org.mule.module.spring.transaction.SpringTransactionFactory">
<property name="manager" ref="transactionManager"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
我已经设置了TRACE日志级别(如@Shailendra建议的那样),我发现事务在所有spring bean中都被重用:
00:26:32.751 [pool-75-thread-1] DEBUG org.springframework.orm.jpa.JpaTransactionManager - Participating in existing transaction
Run Code Online (Sandbox Code Playgroud)
在日志中,事务同时提交,这意味着这些事务是正确创建的,但是并发执行会导致问题.
谁能告诉我如何在骡子记录器组件的消息中插入新行?
例如,我在记录器的消息中有以下内容:
Payload is: #[payload]
Inbound Headers: #[headers:INBOUND:*]
Outbound Headers: #[headers:OUTBOUND:*]
Exceptions: #[exception]
Run Code Online (Sandbox Code Playgroud)
我想在上面的每一个之后插入一个新行.我试过在每行的末尾添加\n,但这不起作用.
我正在尝试使用Bamboo中的maven构建mulesoft代码.Build是成功的,但现在给出如下错误.我正在使用Bamboo 6.5.0和jdk 1.8.使用Maven 3.错误详细信息如下,我的pom.xml,settings.xml也是如此!任何投入赞赏!
build 01-Oct-2018 11:46:02 Caused by: org.apache.maven.plugin.MojoExecutionException: NoFileAssignedException
build 01-Oct-2018 11:46:02 at org.apache.maven.plugins.install.InstallMojo.installProject(InstallMojo.java:152)
build 01-Oct-2018 11:46:02 at org.apache.maven.plugins.install.InstallMojo.execute(InstallMojo.java:108)
build 01-Oct-2018 11:46:02 at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
build 01-Oct-2018 11:46:02 at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
build 01-Oct-2018 11:46:02 ... 20 more
build 01-Oct-2018 11:46:02 Caused by: org.apache.maven.shared.transfer.project.NoFileAssignedException: The packaging plugin for this project did not assign a main file to the project but it has attachments. Change packaging to 'pom'.
build 01-Oct-2018 11:46:02 at org.apache.maven.shared.transfer.project.install.internal.DefaultProjectInstaller.install(DefaultProjectInstaller.java:116)
build 01-Oct-2018 11:46:02 at org.apache.maven.plugins.install.InstallMojo.installProject(InstallMojo.java:140)
build 01-Oct-2018 11:46:02 ... …
Run Code Online (Sandbox Code Playgroud) 我正在快速回顾一下ESB,到目前为止,我对Talend ESB感到惊讶和印象深刻.我真的期待Mule,一个更公认的开源esb,成为事实.
在我仅进行学术和基础测试评估之后,有没有更多有Talend实践经验的人(最好是在使用其他开源ESB之后)提供任何优点/缺点?
令我印象深刻的领域是:*EAI,即可用于集成的组件/传输数量.我发现其他一些ESB更多的是"你可以通过使用Camel或其他库来获得该功能",但是在设置这些"外部可用"功能时却没有提供简单的集成/指导.
*作为单点服务总线的安全性.看来Talend为管理所有公开的SOA服务的安全性提供了很好的支持.我没有机会在实践环境中完全尝试它(再次,有更多经验的人请!),但ESB为您提供完整(在运行期间可管理)安全控制的想法很有吸引力.
*非常好的契约优先IDE支持创建服务,然后由ESB使用.再次,请诚实的反馈.
*我对部署方面有点担心,听起来你需要运行多个服务器/服务,而ESB解决方案的"部署"(存储库的东西......?)可能会导致多点部署.此外,当转移服务地点(开发/测试/生产)时,我的快速审查并不是那么清楚(特别是与其他ESB解决方案相比......如果它们都有点复杂,那就没问题).
*诸如契约优先Web服务之类的用例,可以聚合/组合/重新映射来自多个其他Web服务(可能是二进制java rmi或ejbremote)的信息以填充响应.
*使用诸如监视ftp服务器的文件丢弃,拾取文件,解析xml/csv/edi文件格式以提供给另一个服务(不一定是大批量处理)的用例
*用于监控RSS提要的用例,用于包含XML/CSV/EDI文件链接,下载(新)文件,处理/提供给其他服务的新条目.
*CIFS/Windows共享我没有查看,但我也会在这里询问监控文件的位置/提取.
问题:有Talend ESB经验的人,请提供有关真实世界准确性和/或陷阱的上述陈述的评论,以及更多真实世界的反馈.就像我上面提到的那样,从表面上看,我真的被Talend Open Studio免费提供的开源作为开源,但在没有许可的情况下可以在商业环境中使用,说实话,JbossESB和Mule在放入时有点失望在Talend ESB旁边.
感谢您的任何反馈!
我一直试图弄清楚究竟什么是入站终点和出站终点.对我而言,理解是有点躲避.
什么是mule流中/ do的入站和出站端点?如果流程想要发送消息,则应在接收时使用哪个端点.或者当一个应用程序想要调用一个它应该与之通信的端点的流?
这可能只是我对Docker的新手知识,但我无法让网络工作.
我正在尝试通过pr3d4t0r/mule存储库运行Mule服务器.我可以运行它,热插拔应用程序,但我可以达到它.
我可以在没有Docker的情况下运行本地服务器,它可以完美运行.但是当我使用Docker尝试它时.
当我尝试做一个简单的curl命令时,我得到"卷曲:(56)Recv失败:连接重置由同行"
curl http://localhost:8090/Sven
Run Code Online (Sandbox Code Playgroud)
我试过通过-P暴露端口,并通过-p 8090:8090单独暴露,但没有运气.
当docker正在运行时,它会阻塞端口(我尝试同时运行Docker和普通服务器,但正常的服务器说已经在使用的端口).
当我尝试像jboss/wildfly这样的另一个图像时,我使用-p 8080:8080没有问题,它完美无缺.
mule-server中的应用程序将记录并响应一个简单的"hello World",输出显示应用程序已部署,但在我尝试访问它时没有消息或日志记录.
有什么建议?