【问题标题】:Mule ESB Google Cloud MessagingMule ESB 谷歌云消息传递
【发布时间】:2014-01-25 02:25:37
【问题描述】:

我正在尝试创建一个通过谷歌云消息服务发送推送通知的流。我已经为 gcm 使用了 mule 连接器。但是我无法让它工作。我的配置:

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:json="http://www.mulesoft.org/schema/mule/json" xmlns:gcm="http://www.mulesoft.org/schema/mule/gcm" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:spring="http://www.springframework.org/schema/beans" version="EE-3.4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/gcm http://www.mulesoft.org/schema/mule/gcm/1.0/mule-gcm.xsd
http://www.mulesoft.org/schema/mule/json http://www.mulesoft.org/schema/mule/json/current/mule-json.xsd">
    <gcm:config name="Google_Cloud_Messaging" apiKey="BLANK FOR POSTING" doc:name="Google Cloud Messaging"/>
    <flow name="GCMFlow1" doc:name="GCMFlow1">
        <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="9000" path="gcm" doc:name="HTTP"/>
        <gcm:send-message config-ref="Google_Cloud_Messaging" doc:name="Google Cloud Messaging">
        <gcm:registration-ids>
            <gcm:registration-id>"APA91bGFeuXKNWuAkaFquqk0Dk45kkb-dBZdo_DLz8Ai8bLkZroQyBcDgw-SrA_B2aw2mnReO78rb9ivvn1Phu2x-eMWJmHmtLEOceC-hBGGQvbbpCvse2ZxvllJkYVP-G-jQrfOLOMF"</gcm:registration-id>
        </gcm:registration-ids>
    </gcm:send-message>
    </flow>
</mule>

我收到以下错误:

Exception stack is:
1. Numeric value (5587416482739805649) out of range of int
 at [Source: org.mule.transport.http.ReleasingInputStream@1318bd3c; line: 1, column: 36] (org.codehaus.jackson.JsonParseException)
  org.codehaus.jackson.JsonParser:1433 (null)
2. Failed to invoke sendMessage. Message payload is of type: String (org.mule.api.MessagingException)
  org.mule.module.gcm.processors.SendMessageMessageProcessor:236 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/MessagingException.html)
--------------------------------------------------------------------------------
Root Exception stack trace:
org.codehaus.jackson.JsonParseException: Numeric value (5587416482739805649) out of range of int
 at [Source: org.mule.transport.http.ReleasingInputStream@1318bd3c; line: 1, column: 36]
    at org.codehaus.jackson.JsonParser._constructError(JsonParser.java:1433)
    at org.codehaus.jackson.impl.JsonParserMinimalBase._reportError(JsonParserMinimalBase.java:521)
    at org.codehaus.jackson.impl.JsonParserBase.convertNumberToInt(JsonParserBase.java:829)
    + 3 more (set debug level logging or '-Dmule.verbose.exceptions=true' for everything)

我的 api 密钥和注册 ID 一样有效,因为我在其他地方测试过它们。

更新:详细调试输出:

********************************************************************************
Message               : Failed to invoke sendMessage. Message payload is of type: String
Type                  : org.mule.api.MessagingException
Code                  : MULE_ERROR--2
Payload               : "1"
JavaDoc               : http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/MessagingException.html
********************************************************************************
Exception stack is:
1. Numeric value (8947223409733149407) out of range of int
 at [Source: org.mule.transport.http.ReleasingInputStream@669b824; line: 1, column: 36] (org.codehaus.jackson.JsonParseException)
  org.codehaus.jackson.JsonParser:1433 (null)
2. Failed to invoke sendMessage. Message payload is of type: String (org.mule.api.MessagingException)
  org.mule.module.gcm.processors.SendMessageMessageProcessor:236 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/MessagingException.html)
********************************************************************************
Root Exception stack trace:
org.codehaus.jackson.JsonParseException: Numeric value (8947223409733149407) out of range of int
 at [Source: org.mule.transport.http.ReleasingInputStream@669b824; line: 1, column: 36]
    at org.codehaus.jackson.JsonParser._constructError(JsonParser.java:1433)
    at org.codehaus.jackson.impl.JsonParserMinimalBase._reportError(JsonParserMinimalBase.java:521)
    at org.codehaus.jackson.impl.JsonParserBase.convertNumberToInt(JsonParserBase.java:829)
    at org.codehaus.jackson.impl.JsonParserBase.getIntValue(JsonParserBase.java:625)
    at org.codehaus.jackson.map.deser.std.StdDeserializer._parseInteger(StdDeserializer.java:303)
    at org.codehaus.jackson.map.deser.std.StdDeserializer$IntegerDeserializer.deserialize(StdDeserializer.java:819)
    at org.codehaus.jackson.map.deser.std.StdDeserializer$IntegerDeserializer.deserialize(StdDeserializer.java:806)
    at org.codehaus.jackson.map.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:299)
    at org.codehaus.jackson.map.deser.SettableBeanProperty$MethodProperty.deserializeAndSet(SettableBeanProperty.java:414)
    at org.codehaus.jackson.map.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:697)
    at org.codehaus.jackson.map.deser.BeanDeserializer.deserialize(BeanDeserializer.java:580)
    at org.codehaus.jackson.map.ObjectMapper._readMapAndClose(ObjectMapper.java:2732)
    at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1909)
    at org.mule.module.gcm.GcmConnector.sendMessage(GcmConnector.java:146)
    at org.mule.module.gcm.processors.SendMessageMessageProcessor$1.process(SendMessageMessageProcessor.java:225)
    at org.mule.module.gcm.adapters.GcmConnectorProcessAdapter$1.execute(GcmConnectorProcessAdapter.java:36)
    at org.mule.module.gcm.processors.SendMessageMessageProcessor.process(SendMessageMessageProcessor.java:211)
    at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:27)
    at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:61)
    at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:47)
    at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:27)
    at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:47)
    at org.mule.processor.AsyncInterceptingMessageProcessor.process(AsyncInterceptingMessageProcessor.java:101)
    at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:27)
    at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:61)
    at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:47)
    at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:27)
    at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:47)
    at org.mule.interceptor.AbstractEnvelopeInterceptor.process(AbstractEnvelopeInterceptor.java:55)
    at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:27)
    at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:61)
    at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:47)
    at org.mule.processor.AbstractFilteringMessageProcessor.process(AbstractFilteringMessageProcessor.java:44)
    at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:27)
    at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:61)
    at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:47)
    at org.mule.construct.AbstractPipeline$1.process(AbstractPipeline.java:112)
    at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:27)
    at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:61)
    at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:47)
    at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:27)
    at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:61)
    at org.mule.execution.MessageProcessorExe...
********************************************************************************

新的更新流程:

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:json="http://www.mulesoft.org/schema/mule/json" xmlns:gcm="http://www.mulesoft.org/schema/mule/gcm" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:spring="http://www.springframework.org/schema/beans" version="EE-3.4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/gcm http://www.mulesoft.org/schema/mule/gcm/1.0/mule-gcm.xsd
http://www.mulesoft.org/schema/mule/json http://www.mulesoft.org/schema/mule/json/current/mule-json.xsd">
    <gcm:config name="Google_Cloud_Messaging" apiKey="my_key" doc:name="Google Cloud Messaging"/>
    <flow name="GCMFlow1" doc:name="GCMFlow1">
        <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="9001" path="gcm" doc:name="HTTP"/>
        <set-payload value="APA91bGFeuXKNWuAkaFquqk0Dk45kkb-dBZdo_DLz8Ai8bLkZroQyBcDgw-SrA_B2aw2mnReO78rb9ivvn1Phu2x-eMWJmHmtLEOceC-hBGGQvbbpCvse2ZxvllJkYVP-G-jQrfOLOMF" doc:name="Set Payload"/>
        <expression-component doc:name="Expression"><![CDATA[ArrayList idRegID = new ArrayList();
 idRegID.add("APA91bGFeuXKNWuAkaFquqk0Dk45kkb-dBZdo_DLz8Ai8bLkZroQyBcDgw-SrA_B2aw2mnReO78rb9ivvn1Phu2x-eMWJmHmtLEOceC-hBGGQvbbpCvse2ZxvllJkYVP-G-jQrfOLOMF");
payload= idRegID;]]></expression-component>
        <gcm:send-message config-ref="Google_Cloud_Messaging" doc:name="Google Cloud Messaging">
            <gcm:registration-ids ref="#[payload]"/>
        </gcm:send-message>
    </flow>
</mule>

【问题讨论】:

  • 它已经告诉:数值 (5587416482739805649) 超出 int 范围
  • 嗨,它在哪里得到这个值,它是什么值。是我提交给 gcm 的东西还是它的返回值??
  • 启用详细日志记录,以便我们可以通过将以下 JVM 参数添加到 Mule 来查看完整的堆栈跟踪:-Dmule.verbose.exceptions=true

标签: mule google-cloud-messaging


【解决方案1】:

您使用的是旧版本的连接器:您遇到的问题是fixed 7 months ago。您需要升级到更新的版本。

对于您添加到问题中的第二个问题:您不需要创建列表,而是使用 XML 元素:

<gcm:send-message ...
  <gcm:registration-ids>
    <gcm:registration-id>...</gcm:registration-id>
  </gcm:registration-ids>
  ...

PS。你的gcm:registration-id 看起来很奇怪。它周围的"" 应该会消失。

【讨论】:

  • 嗨,谢谢..解决了“”问题。我对连接器进行了更新,它是最新的。我收到另一个变压器错误,抱怨负载需要是 java.util.List 类型的集合。我用 regid 创建了一个 Arraylist,希望能解决这个问题。不幸的是,int out of range 的原始错误又回来了。不知道我做错了什么。我用包含 mu 变压器的新流程更新了原始帖子。
  • 嗯,在 StackOverflow 上用另一个问题更改现有问题(整数/长整数问题)是不好的做法。您能否接受这个答案并使用列表问题创建一个新问题?
  • 我很困惑。超出范围的整数问题是最初的问题。还是没有解决?我添加了额外的流程以提供更多关于我取得的进展的信息。如果我的理解不正确,请指出。谢谢您的帮助
  • 你用的是什么版本?它应该是 1.2.3。是的,您的第二个问题与整数问题无关,但无论如何,我也已经回答了。
  • 从 github 下载了最新代码并在 studio 中更新了插件。 Mulestudio 软件更新对 gcm 连接器没有任何作用。错误消失了,现在可以正确连接到 GCM。感谢大卫的帮助。
猜你喜欢
  • 2015-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-02
相关资源
最近更新 更多