I've also tried the code below, however I get the following error on the
line client.sendRequest(request);
Perhaps I'm not encoding the task body correctly?
com.google.apphosting.utils.servlet.DeferredTaskServlet: Deferred task
failed exception:
com.google.apphosting.utils.servlet.DeferredTaskServlet$DeferredTaskException:
java.io.StreamCorruptedException: invalid stream header: EFBFBDEF
String queueName = QueueFactory.getDefaultQueue().getQueueName();
ServletRunner sr = new ServletRunner();
sr.registerServlet(
"/_ah/queue/__deferred__",
com.google.apphosting.utils.servlet.DeferredTaskServlet.class.getCanonicalName());
LocalTaskQueue localTaskQueue =
LocalTaskQueueTestConfig.getLocalTaskQueue();
ServletUnitClient client = sr.newClient();
while (!getQueue().getTaskInfo().isEmpty()) {
TaskStateInfo taskInfo = getQueue().getTaskInfo().iterator().next();
String queuedTask = taskInfo.getBody();
String taskName = taskInfo.getTaskName();
WebRequest request = new
PostMethodWebRequest("http:/_ah/queue/__deferred__",
new ByteArrayInputStream(queuedTask.getBytes()),
"application/x-binary-app-engine-java-runnable-task");
request.setHeaderField("X-AppEngine-QueueName", queueName);
try {
client.sendRequest(request);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// localTaskQueue.runTask(queueName, taskName);
localTaskQueue.deleteTask(queueName, taskName);
}
localTaskQueue.flushQueue(queueName);
--
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 [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-appengine-java?hl=en.