Str*_*iny 6 facebook wso2 wso2-esb
我正在尝试使用 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 - RelayUtils Error while building Passthrough stream\norg.apache.axiom.om.OMException: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character \'{\' (code 123) in prolog; expected \'<\'\n at [row,col {unknown-source}]: [1,1]\n at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:296)\n at org.apache.axiom.om.impl.llom.OMDocumentImpl.getOMDocumentElement(OMDocumentImpl.java:109)\n at org.apache.axiom.om.impl.builder.StAXOMBuilder.getDocumentElement(StAXOMBuilder.java:570)\n at org.apache.axiom.om.impl.builder.StAXOMBuilder.getDocumentElement(StAXOMBuilder.java:566)\n at org.apache.synapse.transport.passthru.util.DeferredMessageBuilder.getDocument(DeferredMessageBuilder.java:149)\n at org.apache.synapse.transport.passthru.util.RelayUtils.builldMessage(RelayUtils.java:133)\n at org.apache.synapse.transport.passthru.util.RelayUtils.buildMessage(RelayUtils.java:98)\n at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:72)\n at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:48)\n at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:149)\n at org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:185)\n at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)\n at org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler(ServerWorker.java:317)\n at org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:363)\n at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:142)\n at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)\n at java.lang.Thread.run(Thread.java:745)\nCaused by: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character \'{\' (code 123) in prolog; expected \'<\'\n at [row,col {unknown-source}]: [1,1]\n at com.ctc.wstx.sr.StreamScanner.throwUnexpectedChar(StreamScanner.java:639)\n at com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2052)\n at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1134)\n at org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper.next(XMLStreamReaderWrapper.java:225)\n at org.apache.axiom.util.stax.dialect.DisallowDoctypeDeclStreamReaderWrapper.next(DisallowDoctypeDeclStreamReaderWrapper.java:34)\n at org.apache.axiom.om.impl.builder.StAXOMBuilder.parserNext(StAXOMBuilder.java:681)\n at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:214)\n ... 18 more\n[2015-12-15 15:16:54,377] ERROR - SequenceMediator Error while building message\norg.apache.axis2.AxisFault: Error while building Passthrough stream\n at org.apache.synapse.transport.passthru.util.RelayUtils.handleException(RelayUtils.java:283)\n at org.apache.synapse.transport.passthru.util.RelayUtils.builldMessage(RelayUtils.java:142)\n at org.apache.synapse.transport.passthru.util.RelayUtils.buildMessage(RelayUtils.java:98)\n at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:72)\n at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:48)\n at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:149)\n at org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:185)\n at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)\n at org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler(ServerWorker.java:317)\n at org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:363)\n at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:142)\n at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)\n at java.lang.Thread.run(Thread.java:745)\nCaused by: org.apache.axiom.om.OMException: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character \'{\' (code 123) in prolog; expected \'<\'\n at [row,col {unknown-source}]: [1,1]\n at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:296)\n at org.apache.axiom.om.impl.llom.OMDocumentImpl.getOMDocumentElement(OMDocumentImpl.java:109)\n at org.apache.axiom.om.impl.builder.StAXOMBuilder.getDocumentElement(StAXOMBuilder.java:570)\n at org.apache.axiom.om.impl.builder.StAXOMBuilder.getDocumentElement(StAXOMBuilder.java:566)\n at org.apache.synapse.transport.passthru.util.DeferredMessageBuilder.getDocument(DeferredMessageBuilder.java:149)\n at org.apache.synapse.transport.passthru.util.RelayUtils.builldMessage(RelayUtils.java:133)\n ... 13 more\nRun Code Online (Sandbox Code Playgroud)\n\n参考上面的代理配置,我有一个日志中介器,它实际上成功地打印了 JSON 有效负载,所以这会让我认为它与消息格式化程序有关?
\n\n我的 Axis2.xml 文件中的消息格式化程序/生成器配置如下:
\n\n<!--JSON Message Formatters-->\n<messageFormatter contentType="application/json" class="org.apache.synapse.commons.json.JsonStreamFormatter"/>\n\n<!--JSON Message Builders-->\n<messageBuilder contentType="application/json" class="org.apache.synapse.commons.json.JsonStreamBuilder"/>\nRun Code Online (Sandbox Code Playgroud)\n\n该文件中的其他所有内容均按照默认配置。
\n\n这里可能出了什么问题?
\n\n使用 Soap UI(有效负载中隐藏的 IP 和访问令牌):
\n\nPOST http://[SERVER_IP]:8280/services/facebook_getFeed <br>\nHTTP/1.1 <br>\nAccept-Encoding: gzip,deflate <br>\nContent-Type: application/json <br>\nContent-Length: 207 <br>\nHost: [SERVER_IP]:8280 <br>\nConnection: Keep-Alive <br>\nUser-Agent: Apache-HttpClient/4.1.1 (java 1.5) <br>\nRun Code Online (Sandbox Code Playgroud)\n\n有效负载数据:
\n\n{\n"apiUrl":"https://graph.facebook.com",\n"apiVersion":"v2.4",\n"accessToken":"[TOKEN HERE]",\n"userId":"409521282507981",\n"numOfFeeds":"10",\n"fields":"message,id,created_time"\n}\nRun Code Online (Sandbox Code Playgroud)\n\n根据@RavindraRanwala 的要求:
\n\n[2015-12-15 17:29:38,650] DEBUG - wire >> "POST /services/facebook_getFeed HTTP/1.1[\\r][\\n]"\n[2015-12-15 17:29:38,652] DEBUG - wire >> "Accept-Encoding: gzip,deflate[\\r][\\n]"\n[2015-12-15 17:29:38,653] DEBUG - wire >> "Content-Type: application/json[\\r][\\n]"\n[2015-12-15 17:29:38,653] DEBUG - wire >> "Content-Length: 207[\\r][\\n]"\n[2015-12-15 17:29:38,663] DEBUG - wire >> "Host: [SERVER_IP]:8280[\\r][\\n]"\n[2015-12-15 17:29:38,663] DEBUG - wire >> "Connection: Keep-Alive[\\r][\\n]"\n[2015-12-15 17:29:38,664] DEBUG - wire >> "User-Agent: Apache-HttpClient/4.1.1 (java 1.5)[\\r][\\n]"\n[2015-12-15 17:29:38,665] DEBUG - wire >> "[\\r][\\n]"\n[2015-12-15 17:29:38,666] DEBUG - wire >> "{[\\n]"\n[2015-12-15 17:29:38,666] DEBUG - wire >> ""apiUrl":"https://graph.facebook.com",[\\n]"\n[2015-12-15 17:29:38,667] DEBUG - wire >> ""apiVersion":"v2.4",[\\n]"\n[2015-12-15 17:29:38,668] DEBUG - wire >> ""accessToken":"[ACCESS_TOKEN]",[\\n]"\n[2015-12-15 17:29:38,669] DEBUG - wire >> ""userId":"409521282507981",[\\n]"\n[2015-12-15 17:29:38,669] DEBUG - wire >> ""numOfFeeds":"10",[\\n]"\n[2015-12-15 17:29:38,679] DEBUG - wire >> ""fields":"message,id,created_time"[\\n]"\n[2015-12-15 17:29:38,679] DEBUG - wire >> "}"\n[2015-12-15 17:29:38,812] INFO - LogMediator To: /services/facebook_getFeed, MessageID: urn:uuid:27814841-6067-466c-b55f-b7fdd67c8d3b, Direction: request, Payload: {\n"apiUrl":"https://graph.facebook.com",\n"apiVersion":"v2.4",\n"accessToken":"[ACCESS_TOKEN]",\n"userId":"409521282507981",\n"numOfFeeds":"10",\n"fields":"message,id,created_time"\n}\n[2015-12-15 17:29:38,909] INFO - TimeoutHandler This engine will expire all callbacks after : 120 seconds, irrespective of the timeout action, after the specified or optional timeout\n[2015-12-15 17:29:40,267] DEBUG - wire << "GET /409521282507981/feed?limit=10&access_token=[ACCESS_TOKEN]&fields= HTTP/1.1[\\r][\\n]"\n[2015-12-15 17:29:40,269] DEBUG - wire << "Accept-Encoding: gzip,deflate[\\r][\\n]"\n[2015-12-15 17:29:40,278] DEBUG - wire << "Content-Type: application/json[\\r][\\n]"\n[2015-12-15 17:29:40,279] DEBUG - wire << "Host: graph.facebook.com:443[\\r][\\n]"\n[2015-12-15 17:29:40,280] DEBUG - wire << "Connection: Keep-Alive[\\r][\\n]"\n[2015-12-15 17:29:40,281] DEBUG - wire << "User-Agent: Synapse-PT-HttpComponents-NIO[\\r][\\n]"\n[2015-12-15 17:29:40,281] DEBUG - wire << "[\\r][\\n]"\n[2015-12-15 17:29:40,554] DEBUG - wire >> "HTTP/1.1 200 OK[\\r][\\n]"\n[2015-12-15 17:29:40,557] DEBUG - wire >> "Access-Control-Allow-Origin: *[\\r][\\n]"\n[2015-12-15 17:29:40,558] DEBUG - wire >> "Content-Type: text/javascript; charset=UTF-8[\\r][\\n]"\n[2015-12-15 17:29:40,559] DEBUG - wire >> "X-FB-Trace-ID: E5Iewv3ixeR[\\r][\\n]"\n[2015-12-15 17:29:40,560] DEBUG - wire >> "X-FB-Rev: 2091546[\\r][\\n]"\n[2015-12-15 17:29:40,561] DEBUG - wire >> "ETag: "ca13846784e4a3383090ca79b7a295fd23aa5641"[\\r][\\n]"\n[2015-12-15 17:29:40,561] DEBUG - wire >> "Pragma: no-cache[\\r][\\n]"\n[2015-12-15 17:29:40,562] DEBUG - wire >> "Cache-Control: private, no-cache, no-store, must-revalidate[\\r][\\n]"\n[2015-12-15 17:29:40,563] DEBUG - wire >> "Facebook-API-Version: v2.5[\\r][\\n]"\n[2015-12-15 17:29:40,563] DEBUG - wire >> "Expires: Sat, 01 Jan 2000 00:00:00 GMT[\\r][\\n]"\n[2015-12-15 17:29:40,564] DEBUG - wire >> "Vary: Accept-Encoding[\\r][\\n]"\n[2015-12-15 17:29:40,565] DEBUG - wire >> "Content-Encoding: gzip[\\r][\\n]"\n[2015-12-15 17:29:40,565] DEBUG - wire >> "X-FB-Debug: G+b1bsKrSFxPDc4u1RDGIpHACsTbiJV6n1nGgNfMYwc0IqGO2fif1pnr9/o/dhQ1DLSpl7pXheknjzMwvH948w==[\\r][\\n]"\n[2015-12-15 17:29:40,575] DEBUG - wire >> "Date: Tue, 15 Dec 2015 06:29:46 GMT[\\r][\\n]"\n[2015-12-15 17:29:40,576] DEBUG - wire >> "Connection: keep-alive[\\r][\\n]"\n[2015-12-15 17:29:40,578] DEBUG - wire >> "Content-Length: 814[\\r][\\n]"\n[2015-12-15 17:29:40,579] DEBUG - wire >> "[\\r][\\n]"\n[2015-12-15 17:29:40,580] DEBUG - wire >> "[0x1f][0x8b][0x8][0x0][0x0][0x0][0x0][0x0][0x0][0x3][0xad][0x93][0xef]o[0xa3]6[0x18][0xc7][0xff][0x15][0xc4][0x8b]J[0xd3]z[0x89]\xe2\x8c\x82[0x3][0x96][0xaa][0x89]$M[0xbb][0xb4][0xd7]6[0x97]\\[0xda][0xb0]L[0x91]K[0x1c]B![0x98][0x82][0x9][0xcd]z[0xfd][0xdf]g[0xba]{Q[0xe5][0xa6]p[0x9a][0x6][0xbc][0xb0][0x85][0xad][0xcf][0xd7][0x1f]?[0xcf][0xab][0xbd][0x12]Z[0xd8][0xfc][0x8f]W{+[0xcb]RD[0xd2][0xe6][0xf6\n3][0x97][0x96][0xf9][0x84]u[0xa5]D*,[0xfe][0x8b]}j[0x87][0x85][0x14]Z[0xae][0x96]:[0xde]6k[0x10][0x80][0xf8][0x13][0x84][0x9f][0x90];[0x5][0x88][0x3][0xc8][0xb1][0xfb]+0[0x8f]Y[0x19][0xaf][0xcc]\xe2\x8c\x82[0x2]<[0x8a] r[0x11][0x5][0x8e][0xe7][0xc2]%[0xc4].t[0x10]c[0x18][0x1][0x87]B[0x97][0xd8]o[0xa7][0x1f][0x91][0x13][0xb5][0x95]z[0x13]gQ[0xc3][0xad][0xb]e[0x6][0x1b]Y[0xc8][0xce]q0[0xe0][0x80]q[0xe0][0x1d][0x5][0x13][0x88] c[0x84][0xb9][0x1\n][0x10]y[0x7][0xdc]QUjK[0xcb]R7[0xe8]T[0x85]B[0xc7]*[0xb3]D$[0xe2][0xac][0xd3]9Fw[0xa6][0x8]sJ8[0xa6][0xed]t[0xc]IC\'[0xc][0x1e][0xd0][0xef][\\n]"\n[2015-12-15 17:29:40,592] DEBUG - wire >> "[0xa9][0xf5][0xde]*k)[0xb5][0x95][0xa7]"[0x94][0x96]V[0xd6]F[0xec][0xa4][0x95]VY[0xb8]i[\\r][0x80][0x10][0x87][0xc7][0xbd]7[0x1](1/u[0xcc][0xdc]=[0x8][0xf0][0xbb]U[0x8b][0xd2]j[0xc4]\'[0x8d][0x0][0xf1][0xa8]*[0xdd]L[0xcb][0xf].B][0x89]4[0xdd][0xb7]E[0x81][0x88]#[0xa7]5[\\n]"\n[2015-12-15 17:29:40,595] DEBUG - wire >> "![0xd8]3Q<[0x0][0xf0]A[0x94][0xdb][0x8d]%[0xb2][0x95][0xb5][0x15][0xfb]Gy[0x18][0xc1][0x94][0x84]L[0xd3][0x9f][0xb8][0x10]@9[0x81][0xad]!0[0x81][0xc]![0xc2][0x98]w[0x18][0xc2]7[0x9][0xc2][0x8d][0xc][0x13][0xeb][0x7][0x11][0xc7][0xd1][0x88]c[0xc2]I{-[0x98]6[0xf0]L-P[0xec][0xb2][0x1f][0xce]\xe2\x8c\x82[0xfa].@[0xa4][0xa5]2[0x3][0xa5]M[0xfd][[0xb9]2[0xe5][0xb9].[0xd4][0xd6]d[0x91]VU[0xca][0xa2]E[0x81][\n0x4][0x8f][0xa3]v[0x5]f[\\n]"\n[2015-12-15 17:29:40,596] DEBUG - wire >> ")uMq[0x1e][0xd6][0xa4][0xff][0x1]*[0xde][0x91]mD[0xe0]p[0xc4]Z[0x89][0xc0][0x81][0xa0]!:[0x18][0x1d][0x12][0x9b]S[0xff]T[0xc7]AN[0xcd][0xd7][0xde][0xef][0x0]3dX[0x18][0xb8][0xc0]~[0xfb][0xf3][0xd4][0xce]Ed[0xca][0xdb][0xe6][0xaf]v^[0xc8]][0xac][0xaa][0xd2]l[0xdc]h[0x9d][0x97]|[0xd1]]t[0xa3]B[0xe4][0x9b][0xce][0xda][0xb4][0xdf][0xa3]RI\'T[n[0xea]t[0xd1][0xdd][0xa1][0xe]]t[0xf][0x0][0x8b][0x\nxca][0xd5]oi[0xbc][0x8d][0xf5][0x19][0x4]\'e[0x9c][0x85][0xf2][0xcc][0xdc]+e[0xc0],uOD[0x18][0x9a][0xa3]-[0xb5]Jdv[0x6][0x1d][0xe8]0[0x8][0x8c]l[0x88][0x18]`[0xee][0xb7]Y[0xaa][0xcb][0xde]6z[0xca][0xa6][0x18][0xe6]j[0xb6][0xbf][0xf4][0x96]U[0x8][0x7][0xe]B[0xf5][0xc9]r[0xf9]O[0xd0][0xef]{e[0x16].[0xfd][0x95]?N@[0x8][0x8a]z[0x94][0x8c][0xb0]?q[0x82][0xde][0xa4][0x1e]^[0x87][0xec]9[0xae]f~[0x92]D[0x14][0xf5]\\[0x15][0xf4][0xcb]"[0xbc]\n]d=[0xbc]x[0x92][0xee]\\&[0xdb][0xfb]r[0xf0][0xbc]&[0x81]/[0xf4]|[0x15][0x5][0xfe][0xe7]/[0x8f][0xf1][0x1d]<\xe2\x8c\x82[0xa9][0xf7]+_EW[0x15]c[0x13]W[0xcb]$y[0xbe][0x9a]{[0xeb][0x9b][0x88][0xc2]r[0x1a][0xf4][0xf2][0xcf][0xf7][0xa3]][0x1d][0xc][0x82]A[0x13][0xe5][0xbb][0xa9]3hLg[0xf2]E[0xff]\xe2\x8c\x82[0xca][0xfe][0xbb][0xa1]*[0xd3]q[0xfa].[0x9b][0x9a].[0x82][0xde][0xbf]+[0x1b][0xf4][0xc7][0xf2][0xe6]|>[0xc3]t|[[0x8f]]q3[0x8c][0xf1][0xae][0x9f][0x93][0\nxe8]k[0x8c]/[0xef][0xee]f[0xe7][0xc9][0xa4][0xbe][0x8c][0x3]?[0xbd][0xdf][0xe5]_[0xfb]/[0xfb][0xb1][0x1f][0xf4][0xc9]5[0xb9][0x9e][0x5]f0[0xdd][0x8f]Y[0xe0][0xc3][0xc9][0xee]<{[0xc8].[0xd4]z>[0xa4]^[0xc8]*\xe2\x8c\x82=[0x99][0xc6][0xf][0x4][0xdc]#:q[0x9d][0xa2][0xff][0xc4]n[0x91][0xfc][0xcb][0x1b]^[0xd4][0xf]Q[0xa3][0xcc]~{[0xfb][0x1b][0x92][0x12][0xdf])M[0x7][0x0][0x0]"\n[2015-12-15 17:29:40,674] ERROR - RelayUtils Error while building Passthrough stream\norg.apache.axiom.om.OMException: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character \'{\' (code 123) in prolog; expected \'<\'\n at [row,col {unknown-source}]: [1,1]\n at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:296)\n at org.apache.axiom.om.impl.llom.OMDocumentImpl.getOMDocumentElement(OMDocumentImpl.java:109)\n at org.apache.axiom.om.impl.builder.StAXOMBuilder.getDocumentElement(StAXOMBuilder.java:570)\n at org.apache.axiom.om.impl.builder.StAXOMBuilder.getDocumentElement(StAXOMBuilder.java:566)\n at org.apache.synapse.transport.passthru.util.DeferredMessageBuilder.getDocument(DeferredMessageBuilder.java:149)\n at org.apache.synapse.transport.passthru.util.RelayUtils.builldMessage(RelayUtils.java:133)\n at org.apache.synapse.transport.passthru.util.RelayUtils.buildMessage(RelayUtils.java:98)\n at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:72)\n at org.apache.synapse.mediators.template.InvokeMediator.mediate(InvokeMediator.java:154)\n at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:267)\n at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.mediateFromContinuationStateStack(Axis2SynapseEnvironment.java:679)\n at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:244)\n at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:529)\n at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:172)\n at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)\n at org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:247)\n at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)\n at java.lang.Thread.run(Thread.java:745)\nCaused by: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character \'{\' (code 123) in prolog; expected \'<\'\n at [row,col {unknown-source}]: [1,1]\n at com.ctc.wstx.sr.StreamScanner.throwUnexpectedChar(StreamScanner.java:639)\n at com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2052)\n at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1134)\n at org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper.next(XMLStreamReaderWrapper.java:225)\n at org.apache.axiom.util.stax.dialect.DisallowDoctypeDeclStreamReaderWrapper.next(DisallowDoctypeDeclStreamReaderWrapper.java:34)\n at org.apache.axiom.om.impl.builder.StAXOMBuilder.parserNext(StAXOMBuilder.java:681)\n at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:214)\n ... 19 more\n[2015-12-15 17:29:40,902] ERROR - TemplateMediator Error while building message\norg.apache.axis2.AxisFault: Error while building Passthrough stream\n at org.apache.synapse.transport.passthru.util.RelayUtils.handleException(RelayUtils.java:283)\n at org.apache.synapse.transport.passthru.util.RelayUtils.builldMessage(RelayUtils.java:142)\n at org.apache.synapse.transport.passthru.util.RelayUtils.buildMessage(RelayUtils.java:98)\n at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:72)\n at or
非常感谢@RavindraRanwala 和@ThusithaThilinaDayaratne 引导我解决了这个问题。
查阅线路日志后,Facebook API 似乎正在以文本/javascript 内容类型进行响应。我没有在 ESB 中启用消息生成器/格式化程序来处理此内容类型,因此该过程最终失败。我所需要做的就是打开axis2.xml配置文件并附加以下消息生成器:
<!--JSON Message Builders-->
<messageBuilder contentType="application/json" class="org.apache.synapse.commons.json.JsonStreamBuilder"/>
<messageBuilder contentType="text/javascript" class="org.apache.synapse.commons.json.JsonStreamBuilder"/>
Run Code Online (Sandbox Code Playgroud)
...和格式化程序:
<!--JSON Message Formatters-->
<messageFormatter contentType="application/json" class="org.apache.synapse.commons.json.JsonStreamFormatter"/>
<messageFormatter contentType="text/javascript" class="org.apache.synapse.commons.json.JsonStreamFormatter"/>
Run Code Online (Sandbox Code Playgroud)
Facebook 连接器上的最新文档似乎位于 GitHub 页面,其中澄清了所有必要的构建器/格式化程序信息:
| 归档时间: |
|
| 查看次数: |
13255 次 |
| 最近记录: |