Have you verified that req.getParameter("body") does not return null?
- Jason On Mon, Sep 14, 2009 at 5:37 AM, mahesh <nimmala.anukar...@gmail.com> wrote: > > hi i am working with a sample application in gooleappengine and when > iam sending a request to application through the browser iam getting > the following error > > HTTP ERROR: 500 > > Must set a body > > RequestURI=/helloxmpp1 > Caused by: > > java.lang.IllegalArgumentException: Must set a body > at com.google.appengine.api.xmpp.MessageBuilder.build > (MessageBuilder.java:54) > at com.google.appengine.demos.HelloXmpp1Servlet.doGet > (HelloXmpp1Servlet.java:41) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:693) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) > at > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java: > 487) > at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter > (ServletHandler.java:1093) > at > com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter > (TransactionCleanupFilter.java:43) > at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter > (ServletHandler.java:1084) > at com.google.appengine.tools.development.StaticFileFilter.doFilter > (StaticFileFilter.java:121) > at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter > (ServletHandler.java:1084) > at org.mortbay.jetty.servlet.ServletHandler.handle > (ServletHandler.java:360) > at org.mortbay.jetty.security.SecurityHandler.handle > (SecurityHandler.java:216) > at org.mortbay.jetty.servlet.SessionHandler.handle > (SessionHandler.java:181) > at org.mortbay.jetty.handler.ContextHandler.handle > (ContextHandler.java:712) > at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java: > 405) > at > com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle > (DevAppEngineWebAppContext.java:54) > at org.mortbay.jetty.handler.HandlerWrapper.handle > (HandlerWrapper.java:139) > at com.google.appengine.tools.development.JettyContainerService > $ApiProxyHandler.handle(JettyContainerService.java:313) > at org.mortbay.jetty.handler.HandlerWrapper.handle > (HandlerWrapper.java:139) > at org.mortbay.jetty.Server.handle(Server.java:313) > at > org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java: > 506) > at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete > (HttpConnection.java:830) > at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514) > at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) > at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381) > at org.mortbay.io.nio.SelectChannelEndPoint.run > (SelectChannelEndPoint.java:396) > at org.mortbay.thread.BoundedThreadPool$PoolThread.run > (BoundedThreadPool.java:442) > > Powered by Jetty:// > > actually class and xml file which i have written for my application > are as follows: > > java class: > > > // Copyright 2008 Google Inc. All rights reserved. > > package com.google.appengine.demos; > > import com.google.appengine.api.xmpp.JID; > import com.google.appengine.api.xmpp.Message; > import com.google.appengine.api.xmpp.MessageBuilder; > import com.google.appengine.api.xmpp.MessageType; > import com.google.appengine.api.xmpp.Presence; > import com.google.appengine.api.xmpp.SendResponse; > import com.google.appengine.api.xmpp.XMPPService; > import com.google.appengine.api.xmpp.XMPPServiceFactory; > > import java.io.IOException; > import java.util.Map; > > import javax.servlet.http.HttpServlet; > import javax.servlet.http.HttpServletRequest; > import javax.servlet.http.HttpServletResponse; > > /** > * HelloXmpp is an echo bot that sends back the message it receives. > */ > public class HelloXmpp1Servlet extends HttpServlet { > > private XMPPService xmppService; > > @Override > public void init() { > this.xmppService = XMPPServiceFactory.getXMPPService(); > } > > // For testing. Real requests are POST > public void doGet(HttpServletRequest req, HttpServletResponse res) > throws IOException { > Message message =new MessageBuilder() > .withMessageType(MessageType.CHAT) > .withFromJid(new JID(req.getParameter("from"))) > .withRecipientJids(new JID(req.getParameter("to"))) > .withBody(req.getParameter("body")) > .build(); > processMessage(message, res); > } > > public void doPost(HttpServletRequest req, HttpServletResponse res) > throws IOException { > processMessage(xmppService.parseMessage(req), res); > } > > public void processMessage(Message message, HttpServletResponse res) > throws IOException { > JID fromId = message.getFromJid(); > Presence presence = xmppService.getPresence(fromId); > String presenceString = presence.isAvailable() ? "" : "not "; > SendResponse response = xmppService.sendMessage( > new MessageBuilder(). > withBody(message.getBody() + " (you are " + presenceString + > "available)"). > withRecipientJids(fromId). > build()); > > for (Map.Entry<JID, SendResponse.Status> entry : > response.getStatusMap().entrySet()) { > res.getWriter().println(entry.getKey() + "," + entry.getValue() > + "<br>"); > } > > res.getWriter().println("processed"); > } > } > > > xml file is as follows: > > > <?xml version="1.0" encoding="utf-8"?> > <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns="http://java.sun.com/xml/ns/javaee" > xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" > xsi:schemaLocation="http://java.sun.com/xml/ns/javaee > http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> > <servlet> > <servlet-name>FractalTile</servlet-name> > <servlet- > class>com.google.appengine.demos.mandelbrot.FractalTileServlet</ > servlet-class> > </servlet> > <servlet-mapping> > <servlet-name>FractalTile</servlet-name> > <url-pattern>/fractaltile</url-pattern> > </servlet-mapping> > <welcome-file-list> > <welcome-file>index.html</welcome-file> > </welcome-file-list> > </web-app> > > so please tell me if any corrections to be done in my code > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google App Engine for Java" group. To post to this group, send email to google-appengine-java@googlegroups.com To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en -~----------~----~----~----~------~----~------~--~---