我正在尝试使用 WSO2 ESB 4.9.0 中的 WSO2 Facebook 连接器从 Facebook 检索数据。我在下面提供了代理配置。
\n\n<?xml version="1.0" encoding="UTF-8"?>\n<proxy xmlns="http://ws.apache.org/ns/synapse"\n name="facebook_getFeed"\n transports="https,http"\n statistics="disable"\n trace="disable"\n startOnLoad="true">\n <target>\n <inSequence onError="fault">\n <property name="messageType" value="application/json" scope="axis2"/>\n <log level="full"/>\n <property name="apiUrl" expression="json-eval($.apiUrl)"/>\n <property name="apiVersion" expression="json-eval($.apiVersion)"/>\n <property name="accessToken" expression="json-eval($.accessToken)"/>\n <property name="userId" expression="json-eval($.userId)"/>\n <property name="numOfFeeds" expression="json-eval($.numOfFeeds)"/>\n <property name="fields" expression="json-eval($.fields)"/>\n <facebook.init>\n <apiUrl>{$ctx:apiUrl}</apiUrl>\n <accessToken>{$ctx:accessToken}</accessToken>\n <apiVersion>{$ctx:apiVersion}</apiVersion>\n </facebook.init>\n <facebook.getFeeds>\n <userId>{$ctx:userId}</userId>\n <numOfFeeds>{$ctx:numOfFeeds}</numOfFeeds>\n <fields>{$ctx:fields}</fields>\n </facebook.getFeeds>\n <respond/>\n </inSequence>\n <outSequence>\n <property name="messageType" value="application/json" scope="axis2"/>\n <send/>\n </outSequence>\n </target>\n <description/>\n</proxy> \nRun Code Online (Sandbox Code Playgroud)\n\n我遇到的问题是,每当我向服务发出 POST 请求时,它都会超时。检查 ESB 错误日志,似乎存在“构建直通流时出错”。
\n\n[2015-12-15 15:16:54,284] ERROR - …Run Code Online (Sandbox Code Playgroud) 我是否有可能通过 MessageId 在 WSO2 ESB 上查找消息,例如 urn:uuid:e11893c5-b033-4e99-9473-a43d66b65fbb ?例如,如果某些流程失败并且服务器记录了此类 ID。
当我尝试使用 wso2 中的 XSLT 中介器将 XML 转换为 Json 时,我收到“有效负载无法写为 JSON”。错误。谁能帮我解决这个问题。
提前致谢
我一直在一个服务链中工作,该服务链通过 WSO2 EMM 中使用的不记名令牌来回答我。我在 ESB 中创建了一个代理,然后传递给一个新的序列来进行下一次调用,但是这个序列接收到一个 Content-Type application/x-www-form-urlencoded。我一直在寻求一些帮助,以便能找到任何有趣的东西。
这是我的代理
<?xml version="1.0" encoding="UTF-8"?>
<proxy name="TokenService" startOnLoad="true" statistics="enable"
trace="enable" transports="http https" xmlns="http://ws.apache.org/ns/synapse">
<target>
<inSequence>
<!--Aggregate incoming responses -->
<log level="full">
<property name="sequence" value="Paso 1 - request for client register"/>
</log>
<property description="Content-Type" name="ContentType"
scope="default" type="STRING" value="application/json"/>
<header name="Accept" scope="transport" value="application/json"/>
<payloadFactory description="Payload" media-type="json">
<format>{
"owner": "admin",
"clientName": "admin_emm",
"grantType":
"refresh_token password client_credentials",
"tokenScope": "prod"
}</format>
<args/>
</payloadFactory>
<send receive="Mensaje"/>
</inSequence>
<outSequence/>
<faultSequence/>
</target>
</proxy>
Run Code Online (Sandbox Code Playgroud)
这是我从代理中的其他服务获取响应的序列
<?xml version="1.0" encoding="UTF-8"?>
<sequence name="Mensaje" trace="enable" xmlns="http://ws.apache.org/ns/synapse"> …Run Code Online (Sandbox Code Playgroud) 我使用 Iterator 和 Script Mediator 来计算学生成绩的总和。
我看到这个问题,我每次收到0和note的总和,你说totalnote不接受变量note和增量例如,如果我把totalnote的值= 16,它是16和每行的note的总和
我的目标是将这 4 个音符加起来
这是我的代码
<property name="totalnote" scope="default" type="INTEGER" value="0"/>
<iterate expression="//etudiants/etudiant">
<target>
<sequence>
<property expression="json-eval($.etudiant.note)" name="note" scope="default" type="INTEGER"/>
<log level="custom">
<property expression="get-property('note')" name="msg"/>
</log>
<script language="js"><![CDATA[{var i = parseInt(mc.getProperty("note")) ;
var totalnote = parseInt(mc.getProperty("totalnote")) ;
var totalnote = totalnote + i;
totalnote=totalnote.toString();
mc.setProperty("totalnote", totalnote);}]]></script>
<log level="custom">
<property expression="get-property('totalnote')" name="ms"/>
</log>
</sequence>
</target>
</iterate>
<respond/>
</inSequence>
<outSequence/>
<faultSequence/>
</resource>
</api>
Run Code Online (Sandbox Code Playgroud)
我收到的结果:
[2022-12-01 10:04:40,450] INFO {LogMediator} - {api:student} msg = 13
[2022-12-01 10:04:40,450] INFO …Run Code Online (Sandbox Code Playgroud) 当调用 REST API(假设调用后端 twitter API)时,我在 WSO2 ESB 中遇到以下异常。我正在按照这篇博文中给出的步骤进行操作。twitter 安全证书已成功导入到 wso2 密钥存储中。这会是什么原因呢?我正在使用 wso2 esb 4.8.1 版本。
ERROR - TargetHandler I/O error: General SSLEngine problem
javax.net.ssl.SSLHandshakeException: General SSLEngine problem
at sun.security.ssl.Handshaker.checkThrown(Handshaker.java:1290)
at sun.security.ssl.SSLEngineImpl.checkTaskThrown(SSLEngineImpl.java:513)
at sun.security.ssl.SSLEngineImpl.writeAppRecord(SSLEngineImpl.java:1177)
at sun.security.ssl.SSLEngineImpl.wrap(SSLEngineImpl.java:1149)
at javax.net.ssl.SSLEngine.wrap(SSLEngine.java:469)
at org.apache.http.nio.reactor.ssl.SSLIOSession.doWrap(SSLIOSession.java:220)
at org.apache.http.nio.reactor.ssl.SSLIOSession.doHandshake(SSLIOSession.java:254)
at org.apache.http.nio.reactor.ssl.SSLIOSession.isAppInputReady(SSLIOSession.java:380)
at org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:118)
at org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:160)
at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:342)
at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:320)
at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:280)
at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:106)
at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:604)
at java.lang.Thread.run(Thread.java:745)
Caused by: javax.net.ssl.SSLHandshakeException: General SSLEngine problem
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1683)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:278)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:270)
at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1341)
at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:153)
at …Run Code Online (Sandbox Code Playgroud) 我正在使用 WSO2 ESB 并尝试将 XML 有效负载转换为 Json。
<property name="messageType" value="application/json" scope="axis2"/>
Run Code Online (Sandbox Code Playgroud)
上面的属性中介器将我的 xml 转换为 json,一切正常。
问题出在我的 XML 负载中的子节点上。
当 xml 为
<users>
<user>user1</user>
<user>user2</user>
</users>
Run Code Online (Sandbox Code Playgroud)
它被转换为
"users": {
"user": [
"user1", "user2"
]
}
Run Code Online (Sandbox Code Playgroud)
所以我的其余完整端点接收 json 有效负载,该负载期望列表“用户”工作正常。
但是当 xml 是
<users>
<user>user1</user>
</users>
Run Code Online (Sandbox Code Playgroud)
转换后的 json 看起来像这样,
"users": {
"user": "user1"
}
Run Code Online (Sandbox Code Playgroud)
因此,期望“用户”列表的restfull端点没有得到列表,而是发送了一个字符串,并且数据类型不匹配导致找不到端点。
如果进一步尝试,
<Data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:json="http://james.newtonking.com/projects/json">
<users>
<user json:Array="true">user1</user>
</users>
</Data>
Run Code Online (Sandbox Code Playgroud)
这个转换给出一个 json 为,
{
"Data": {
"users": {
"user": {
"@Array": "true",
"$": "user1"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我需要的是, …
在我的 WSO2 ESB 项目中,我使用 xslt 文件进行转换。我需要管理端点值的类型。我的有效负载是 JSON,遗留系统的有效负载也是 JSON。我正在尝试将整数值更改为字符串值。
尝试按顺序使用脚本获取有效负载并使用 js,但我需要在 xslt 中管理它。
例如 ;
<xsl:if test="//jsonObject/searchTerm">
<searchTerm><xsl:value-of select="//jsonObject/searchTerm"/></searchTerm>
</xsl:if>
searchTerm 值是来自端点的整数值,但我需要将其作为字符串传输到其他系统。您能否就这个问题提出建议?
如何.pem从 API Manager 导出公钥( ) wso2carbon.jks?我想把它放在/etc/ssl/certs/ca-certificates.crt我的linux服务器上。我这样做是为了解决像我这样的问题
我们有如下所示的 json 对象,预期结果为:“(001),(011),(089),(120)”。
任何人都可以建议如何迭代 json 数组并连接提及的值。"(001),(011),(089),(120)"
提前致谢。
{
"Element": {
"Values": {
"AgentID": "aaaaa",
"TransactionData": [
{
"No": "001"
},
{
"No": "011"
},
{
"No": "089"
},
{
"No": "120"
}
]
}
}
}
Run Code Online (Sandbox Code Playgroud) 我正在使用 WSO2 微集成器开发 POC,并且创建了一个多 Maven 项目,其中包含 EBS Artifacts、Composite App、Registry 和 Kubernetes Exporter。当我尝试使用父 multimaven pom 构建项目时,出现以下错误:
[INFO] Building EmployeeInfo 1.0.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ EmployeeInfo ---
[INFO] Deleting /Users/ishantgarg/IntegrationStudio/deployment_workspace/POC_EmployeeInfo/EmployeeInfo/target/capp
[INFO]
[INFO] --- wso2-esb-api-plugin:2.1.0:pom-gen (api) @ EmployeeInfo ---
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] POC_EmployeeInfo ................................... SUCCESS [ 0.682 s]
[INFO] EmployeeInfo ....................................... FAILURE [ 0.091 s]
[INFO] EmployeeInfoRegistry ............................... SKIPPED
[INFO] EmployeeInfoCompositeApplication ................... SKIPPED
[INFO] EmployeeInfoKubernetsExporter ...................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] …Run Code Online (Sandbox Code Playgroud) 我想更改 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 中介器进行此更改吗?