Java XMPP GAE对谷歌的回复+;不';行不通

Java XMPP GAE对谷歌的回复+;不';行不通,java,google-app-engine,xmpp,google-plus,Java,Google App Engine,Xmpp,Google Plus,我注意到在解析消息时,我的谷歌应用程序引擎日志中出现了错误。堆栈跟踪对诊断问题没有帮助,所以我写了一个小消息转储程序,它的灵感来自于Google实现的 公共类ChatRequestParser扩展了HttpRequestParser{ 公共静态映射解析消息(HttpServletRequest) 抛出IOException{ 试一试{ Map message=newhashmap(); MimeMultipart multipart=parseMultipartRequest(请求); int

我注意到在解析消息时,我的谷歌应用程序引擎日志中出现了错误。堆栈跟踪对诊断问题没有帮助,所以我写了一个小消息转储程序,它的灵感来自于Google实现的

公共类ChatRequestParser扩展了HttpRequestParser{
公共静态映射解析消息(HttpServletRequest)
抛出IOException{
试一试{
Map message=newhashmap();
MimeMultipart multipart=parseMultipartRequest(请求);
int parts=multipart.getCount();
对于(int i=0;i
我发现Google+为每条消息发送两条消息,其中只有一条包含正文(Gmail Talk客户端只发送一条消息)

这是第一条没有正文的信息:

{to=xxx@appspot.com, stanza=<message to="xxx@appspot.com" type="chat"
from="yyy@gmail.com/TalkGadgetD9F45A83" xmlns="jabber:client">
<cha:composing xmlns:cha="http://jabber.org/protocol/chatstates"/>
<nos:x value="disabled" xmlns:nos="google:nosave"/>
<arc:record otr="false" xmlns:arc="http://jabber.org/protocol/archive"/>
</message>, from=yyy@gmail.com/TalkGadgetD9F45A83}
{to=xxx@appspot.com,节=

.

我可以在未设置主体并调用parseMessage时重现崩溃,我正在修复它。感谢您找到它

但是,我无法重新设置“发送回复不工作”错误。我有如下代码:

  XMPPService xmpp = XMPPServiceFactory.getXMPPService();
  Message message = xmpp.parseMessage(req);
  Message reply = new MessageBuilder().withFromJid(message.getRecipientJids()[0])
    .withRecipientJids(message.getFromJid())
    .withBody("Back at you!")
    .build();
  xmpp.sendMessage(reply);

我在Google+和Gmail中都收到了回复。你有什么不同吗?

现在正在调查这一问题——感谢你的报告,并添加了外部问题。我已将其标记为“已启动”。将在此处和问题跟踪器上更新。我有
。withMessageType(MessageType.NORMAL)
,如果我将其删除,则该消息将由Google+接收(默认值应为
聊天
)。注意:即使没有设置FromJid,它也可以工作。如果我将withFromJid()保留,是否有问题退出?是否保证我的应用程序将是第一个接收者JID?否则,我如何才能找出正确的fromJid?在解析的消息中,可以保证你的应用程序将是第一个接收者JID。如果用户已订阅,则忽略它是可以的,但不会正常运行”foo@yourappid.appspotchat.com“但是你的回答来自"yourappid@appspot.com“(来自JID的默认设置)。现在正在调查MessageType.NORMAL错误——感谢您的澄清!很高兴知道,现在我对
message.getRecipientJids()[0]
感觉好多了,谢谢。
{to=xxx@appspot.com, body=**********************************, 
stanza=<message to="xxx@appspot.com" type="chat" 
id="7279D79D0.17809585028724073_:sl" from="yyy@gmail.com/TalkGadgetD9F45A83"
xmlns="jabber:client"><body>**********************************</body>
<cha:active xmlns:cha="http://jabber.org/protocol/chatstates"/>
<nos:x value="disabled" xmlns:nos="google:nosave"/><arc:record otr="false"
xmlns:arc="http://jabber.org/protocol/archive"/></message>,
from=yyy@gmail.com/TalkGadgetD9F45A83}
  XMPPService xmpp = XMPPServiceFactory.getXMPPService();
  Message message = xmpp.parseMessage(req);
  Message reply = new MessageBuilder().withFromJid(message.getRecipientJids()[0])
    .withRecipientJids(message.getFromJid())
    .withBody("Back at you!")
    .build();
  xmpp.sendMessage(reply);