Mule是一个基于Java的轻量级企业服务总线(ESB)和集成平台,允许开发人员快速,轻松地将应用程序连接在一起,使他们能够交换数据。无论应用程序使用何种不同的技术,Mule都可以轻松集成现有系统,包括JMS,Web服务,JDBC,HTTP等。
我正在编写一个 GraphQL 查询,我必须使用 $like 但我收到一个语法错误:Unexpected from the GraphQl service 我怎样才能像字符串一样使用 $like 而不会出现此错误? 我试试这个: '有趣...
我正在尝试使用带有两个动态输入的 dataweave 生成如下所示的数组,即 mule 中的totalCount=1000 和 splitNumber=100 。我可以在 Java 脚本中执行相同的操作,但不知道如何实现...
如何在 Mulesoft 中部署 Restful Web API
我们使用Visual studio进行API开发。我们的客户希望我们使用 Mule 软件进行 API 管理。 任何人都可以提供有关如何部署和管理现有休息的步骤或相关文章...
在 Mule 4 中从 AWS S3 上的特定存储桶获取对象
我想从 Mule 4 中的 S3 存储桶读取文件(对象)。 我只能访问此存储桶的读/写文件。因此,当我在 AWS S3 连接器的全局配置中输入访问密钥和秘密并执行...
套接字连接器 - 有没有办法读取数据而不是发送和接收 - Mule 4
任何人都知道如何从 TCP 连接读取数据, 根据我的要求,我需要从 TCP 读取数据并处理该数据并将响应写回 TCP 服务器。 但我没有看到任何接收
如何将传入的具有对象的 JSON 有效负载转换为具有下游系统期望的对象列表的有效负载
输入负载: { "9873452": "74298", "9067329": "32115" "1234556": "98765" } 预期输出有效负载 { “提供商”:&...
大家好,我正在尝试根据 data weave 2.0 中的数组更新和创建字段 例如这是我的输入 { “身体”:{ “字段1”:“a”, “……
Mule - 尝试通过 HTTPS 发送消息时“无法找到请求目标的有效证书路径”
我有一个 Mule 流程(Mule CE 3.4.0、Studio 3.5.0),它正在处理一些 XML 并使用 HTTPS 端点将其发布到 Web 服务,如下所示: 我有一个 Mule 流程(Mule CE 3.4.0、Studio 3.5.0),它正在处理一些 XML 并使用 HTTPS 端点将其发布到 Web 服务,如下所示: <flow> <!-- Process XML --> <https:outbound-endpoint address="https://admin:password@localhost:8081/hello" exchange-pattern="request-response" contentType="text/xml" method="POST" doc:name="HTTP"/> <!-- Evaluate response --> </flow> 在生产中,这将访问由不同平台公开的 Web 服务,但为了在本地进行测试,我创建了一个完全独立的 Mule 应用程序(单独的工作区、项目文件等),它公开了一个 HTTPS 端点来使用消息: <spring:beans> <security:authentication-manager alias="MyManager"> <security:authentication-provider> <security:user-service id="UserService"> <security:user name="admin" password="password" authorities="ROLE_ADMIN"/> </security:user-service> </security:authentication-provider> </security:authentication-manager> </spring:beans> <spring-security:security-manager> <spring-security:delegate-security-provider name="InMemory" delegate-ref="MyManager"/> </spring-security:security-manager> <https:connector name="httpsConnector"> <https:tls-key-store path="test.jks" keyPassword="test1234" storePassword="test1234"/> </https:connector> <flow name="httpTestFlow" doc:name="httpTestFlow"> <https:inbound-endpoint exchange-pattern="one-way" host="localhost" port="8081" doc:name="HTTP" connector-ref="httpsConnector"> <spring-security:http-security-filter realm="mule-realm" securityProviders="InMemory"/> </https:inbound-endpoint> <object-to-string-transformer doc:name="Object to String"/> <logger level="INFO" message="The XML message received is: #[payload]" doc:name="Logger"/> </flow> 当我尝试运行此程序时,我的 Mule 应用程序(发送 XML 的应用程序)中出现以下错误: ******************************************************************************** Message : Failed to route event via endpoint: DefaultOutboundEndpoint{endpointUri=https://admin:<password>@localhost/hello, connector=HttpsConnector { name=connector.https.mule.default lifecycle=start this=7cc4f42c numberOfConcurrentTransactedReceivers=4 createMultipleTransactedReceivers=true connected=true supportedProtocols=[https] serviceOverrides=<none> } , name='endpoint.https.localhost.8081.hello', mep=REQUEST_RESPONSE, properties={http.method=POST, Content-Type=text/xml}, transactionConfig=Transaction{factory=null, action=INDIFFERENT, timeout=0}, deleteUnacceptedMessages=false, initialState=started, responseTimeout=10000, endpointEncoding=UTF-8, disableTransportTransformer=false}. Message payload is of type: PostMethod Code : MULE_ERROR--2 -------------------------------------------------------------------------------- Exception stack is: 1. unable to find valid certification path to requested target (sun.security.provider.certpath.SunCertPathBuilderException) sun.security.provider.certpath.SunCertPathBuilder:196 (null) 2. PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target (sun.security.validator.ValidatorException) sun.security.validator.PKIXValidator:385 (null) 3. sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target (javax.net.ssl.SSLHandshakeException) sun.security.ssl.Alerts:192 (http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/net/ssl/SSLHandshakeException.html) 4. Failed to route event via endpoint: DefaultOutboundEndpoint{endpointUri=https://admin:<password>@localhost/hello, connector=HttpsConnector { name=connector.https.mule.default lifecycle=start this=7cc4f42c numberOfConcurrentTransactedReceivers=4 createMultipleTransactedReceivers=true connected=true supportedProtocols=[https] serviceOverrides=<none> } , name='endpoint.https.localhost.8081.hello', mep=REQUEST_RESPONSE, properties={http.method=POST, Content-Type=text/xml}, transactionConfig=Transaction{factory=null, action=INDIFFERENT, timeout=0}, deleteUnacceptedMessages=false, initialState=started, responseTimeout=10000, endpointEncoding=UTF-8, disableTransportTransformer=false}. Message payload is of type: PostMethod (org.mule.api.transport.DispatchException) org.mule.transport.http.HttpClientMessageDispatcher:155 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/transport/DispatchException.html) -------------------------------------------------------------------------------- Root Exception stack trace: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:196) at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:268) at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:380) + 3 more (set debug level logging or '-Dmule.verbose.exceptions=true' for everything) ******************************************************************************** 我的其他应用程序收到消息时出现此错误: ERROR 2014-06-05 15:58:05,380 [[test-webservice].http.request.dispatch.8081.01] org.mule.exception.DefaultSystemExceptionStrategy: Caught exception in Exception Strategy: Received fatal alert: certificate_unknown javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174) at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:136) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1822) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1004) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1188) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:818) at com.sun.net.ssl.internal.ssl.AppInputStream.read(AppInputStream.java:75) at com.sun.net.ssl.internal.ssl.AppInputStream.read(AppInputStream.java:50) at org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:78) at org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:106) at org.mule.transport.http.HttpServerConnection.readLine(HttpServerConnection.java:243) at org.mule.transport.http.HttpServerConnection.getRequestLine(HttpServerConnection.java:509) at org.mule.transport.http.HttpRequestDispatcherWork.run(HttpRequestDispatcherWork.java:70) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) at java.lang.Thread.run(Thread.java:695) 任何人都可以确定这里可能出了什么问题,或者建议一种在本地测试我的出站端点的替代方法吗?预先感谢。 您确定您的单独应用程序实际上正在运行吗?看起来好像不是:也许它只是无法启动? 任何人都可以解决这个问题吗?请 消息:资源“https://transaction-sapi1.us-e2.cloudhub.io:443/api/members/transactions”上的 HTTP POST 失败:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效认证路径。 元素:(无) 元素 DSL :(无) 错误类型:HTTP:CONNECTIVITY FlowStack:(无) (为所有内容设置调试级别日志记录或“-Dmule.verbose.exceptions=true”)
我正在使用 Mule 4 来制作流程,在错误处理上我希望它将消息转换为使用现有有效负载的内容。 我的代码是 交易通知:{ 《测试》:“巴...
我的是一个 Mule 4 应用程序(4.4),使用内存数据库中的 H2 来执行 munit 测试。 所以之前使用 jdbc url 为: 我的是一个 Mule 4 应用程序(4.4),使用内存数据库中的 H2 来执行 munit 测试。 所以之前使用 jdbc url 作为: <property name="url" value="jdbc:h2:mem:empdb;DB_CLOSE_ON_EXIT=FALSE;MODE=ORACLE; INIT=RUNSCRIPT FROM 'classpath:sql/h2init.sql';TRACE_LEVEL_FILE=4;TRACE_LEVEL_SYSTEM_OUT=3;" /> 然而,这个问题是在同一个 Munit 套件中有多个 Munit 的情况下,并且每次测试后都会抱怨 due to h2init.sql being executed twice against the same database. It fails the second time as the tables already exist. 上面的引用实际上是从here复制的,但它准确地解释了遇到的问题。 因此使用了@peterB建议的解决方案,即使用 "in memory private" connection mode,如下所示: <property name="url" value="jdbc:h2:mem:;DB_CLOSE_ON_EXIT=FALSE;MODE=ORACLE; INIT=RUNSCRIPT FROM 'classpath:sql/h2init.sql';TRACE_LEVEL_FILE=4;TRACE_LEVEL_SYSTEM_OUT=3;" /> 请注意,empdb 已从 jdbc url 中删除,现在一切正常 然而,这现在导致了一个不同的问题 - 早些时候我可以通过以下方式访问 H2 控制台:http://localhost:8082/ 并登录 现在,当我尝试时,它失败了: 数据库 URL“jdbc:h2:mem”中不允许使用隐式相对于当前工作目录的文件路径。请改用绝对路径、~/name、./name 或 baseDir 设置。 [90011-224] 90011/90011(帮助) 我尝试的 jdbc url 是:jdbc:h2:mem: 在运行 munits 时的控制台日志中可以看到我的 munit 与 db 连接良好: INFO 2024-03-03 11:39:00,665 [[MuleRuntime].uber.03: h2database: database opening mem: (build 224) INFO 2024-03-03 11:39:00,715 [[MuleRuntime].uber.03: h2database: database opened mem: 正在阅读 H2 文档:https://www.h2database.com/html/features.html 内存数据库对于某些用例(例如:快速 原型设计、测试、高性能操作、只读 数据库),可能不需要保存数据或保存更改 到数据。该数据库支持内存模式,其中数据 没有坚持下去。 在某些情况下,只有一个与内存数据库的连接 必需的。这意味着要打开的数据库是私有的。在这个 例如,数据库 URL 为 jdbc:h2:mem:在其中打开两个连接 同一个虚拟机意味着打开两个不同的(私有的) 数据库。 有时与同一个内存数据库的多个连接 必需的。在这种情况下,数据库 URL 必须包含名称。例子: jdbc:h2:内存:db1。仅使用此 URL 访问同一数据库才有效 在相同的虚拟机和类加载器环境中。 从另一个进程或另一个进程访问内存数据库 计算机上,您需要在与该计算机相同的进程中启动一个 TCP 服务器 内存数据库已创建。然后其他进程需要 通过 TCP/IP 或 TLS 访问数据库,使用数据库 URL,例如: jdbc:h2:tcp://localhost/mem:db1. 默认情况下,关闭最后一个数据库连接将关闭 数据库。对于内存数据库来说,这意味着内容丢失。 要保持数据库打开,请将 ;DB_CLOSE_DELAY=-1 添加到数据库 URL。 使内存数据库的内容与虚拟数据库的保存时间一样长 机器处于活动状态,使用 jdbc:h2:mem:test;DB_CLOSE_DELAY=-1。这可能 创建内存泄漏,当需要删除数据库时,使用 关机命令。 因此,唯一的问题是当我处于调试模式下的 Munit 中间时,想在浏览器中打开控制台并查看表记录的状态 - 这怎么可能? 从上面的文档中我不确定h2 In memory database private mode是否可能? 未命名的私有内存数据库不在不同连接之间共享,每个连接都有自己独立的数据库。当您只需要一个连接时,您可以使用此类数据库,但无法使用 H2 Console 或任何其他工具来检查它,因为具有相同 URL 的 H2 Console(或其他工具)将获得一个自己的(空)私人数据库。
Dataweave 转换 - 满足条件时如何减少有效负载数组
我有这个 JSON 有效负载: [ { “身份证”:“6812”, “状态”:“可用”, “到期日期”:“2024-04-30T13:00:00.000-07:0...
Mule 4 尝试在 Munit 中初始化基于 Spring 的 H2 数据源 - 出现 ClassNotFoundException
我正在尝试在Mule 4中编写一个Munit,其中在Munit中我想使用基于Spring的H2数据源 所以我在 Munit 类中定义了以下内容: 我正在尝试在 Mule 4 中编写一个 Munit,其中我想在 Munit 中使用基于 Spring 的 H2 数据源 所以我在我的 Munit 类中定义了以下内容: <munit:config name="munit-test-config.xml" /> <spring:config name="Spring_Config" doc:name="Spring Config" files="beans.xml" > </spring:config> <db:config name="Database_Config" doc:name="Database Config"> <db:data-source-connection dataSourceRef="dataSource" /> </db:config> 在beans.xml: <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="org.h2.Driver" /> <property name="url" value="jdbc:h2:mem:test;DB_CLOSE_DELAY=-1" /> <property name="username" value="sa" /> <property name="password" value="" /> </bean> 在我的 pom 中包含了所需的依赖项并作为共享库: <dependency> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> <version>0.9.5.2</version> <scope>test</scope> </dependency> <sharedLibrary> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> </sharedLibrary> 但是,如果我run通过anypoint studio运行应用程序,它运行良好,但是如果我尝试运行Munit,它会失败: 上下文初始化期间遇到异常 - 取消 刷新尝试: org.springframework.beans.factory.CannotLoadBeanClassException:不能 查找 bean 的类 [org.apache.commons.dbcp.BasicDataSource] 类路径资源 [beans.xml] 中定义的名称“dataSource”;嵌套的 例外是 org.mule.runtime.module.artifact.api.classloader.exception.CompositeClassNotFoundException: 无法加载类“org.apache.commons.dbcp.BasicDataSource”:[ org.apache.commons.dbcp.BasicDataSource,无法加载类 'org.apache.commons.dbcp.BasicDataSource': [ 我错过了什么? 您的 pom 声明了 c3p0 数据库连接池的依赖项,但您的 Spring bean 使用 Apache DBCP 数据库连接池创建一个池。在这两个地方都使用 DBCP 或 c3p0。
Dataweave 有效负载转换 - NetSuite SOAP
我有 JSON 有效负载,需要对其进行转换并调用 NetSuite。 有效负载: [ { “Netsuite 销售订单 ID”:“15922713”, “项目编号”:“
如何提取键值对并将其存储在Object Store V2 Mule 2.0中
我需要迭代以下输入负载并将所有 EMPNAME 作为键和 EMPID 作为值存储在对象存储中。 { “应用程序”:“销售人员”, “有效载荷...
我想使用 Assert Equals 组件来查找负载中是否存在字符串。我举个例子: Txt|名称=ST CLAUD|国家/地区=西班牙|Txtld=45 我想搜索有效负载是否包含字符串“
从 Mule flowVars 中的 JSON 数组获取字段值
我正在使用 Anypoint 6.1 和 Mule 3.8.1,并且有一个 flowVar,它包含一个如下所示的 JSON 对象: { “商店”:[ [ “商店1” ], [ “商店2” ] ] } 当我循环时
我有一个名为modifiedDate的查询参数,在RAML文件中定义为仅限日期,但是当我查看Mule调试器时,我看到modifiedDate 2001-10-10是一个字符串数据类型。 随机存取存储器 ... 查询参数...
Mule ESB 无法触发 Choice 'when' 条件
我无法让 Mule ESB 触发 Choice 'when' 条件 我将 Hello World 流转换为接受 JSON 对象(将 JSON 插入到对象节点)并执行 Choice 节点。 但我不能...
访问 MuleSoft Anypoint Exchange 属性
我正在使用 Amazon Secrets Manager Properties Provider Connector 尝试从我的 Anypoint 应用程序连接到 AWS Secrets Manager。该文档使我看起来可以配置
我正在返回一条 JSON 消息,它显示 新行字符。我怎样才能阻止这种情况发生并显示返回结果,以便文本看起来更具可读性,而不是仅显示 li 上的所有内容...