OK, not to beat a dead horse here but....  I used tcpdump to watch the
traffic going back and forth between my java program and the jetty
server.  So here's what my java sends:

GET /bumbleverse/load/object HTTP/1.1
User-Agent: Java/1.6.0_17
Host: localhost:8888
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive


The server responds:

HTTP/1.1 404 Not Found
Content-Type: text/html; charset=iso-8859-1
Cache-Control: must-revalidate,no-cache,no-store
Content-Length: 1388
Server: Jetty(6.1.x)

<html>
[redacted error message in html that says NOT FOUND]
...
</br>


OK fine so you're thinking, well he must have the URL wrong.  Well, I
opened up good old telnet and pasted in the headers that the java
program had sent (just cut and paste out of the terminal).

>telnet localhost 8888
Connected to localhost.
Escape character is '^]'.
GET /bumbleverse/load/object HTTP/1.1
User-Agent: Java/1.6.0_17
Host: localhost:8888
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive


HTTP/1.1 200 OK
Content-Type: text/plain; charset=iso-8859-1
Content-Length: 101
Server: Jetty(6.1.x)

[followed by the expected text output]


Thanks for any help/ideas...

Matt

On Apr 12, 9:33 pm, "matt.rosencrantz" <[email protected]>
wrote:
> As a fallback I've created a Java version of my uploader.  I'm
> basically doing:
>                         URL url = new 
> URL("http://localhost:8888/load/object";);
>                         URLConnection con = url.openConnection();
>                         con.setDoOutput(true);
>                         con.setDoInput(true);
>
>                         con.connect();
>
>                         OutputStreamWriter out =
>                                 new OutputStreamWriter(con.getOutputStream());
>                         out.write("key=value");
>                         out.close();
>
>                         InputStream is = con.getInputStream();
>                         result = IOUtils.toString(is);
>                         is.close();
>
> However, the line "InputStream is = con.getInputStream();" produces a
> FileNotFound exception.  Some research turned up that this is probably
> because the server is giving back a 404.  I can load the exact same
> URL in the browser and it works fine.  Is there a way to get low level
> (apache style) request logs for the dev server?  My servlet isn't
> seeing anything.
>
> Thanks for any help,
> Matt
>
> On Apr 12, 12:58 pm, "matt.rosencrantz" <[email protected]>
> wrote:
>
>
>
> > Hello,
>
> > I am trying to build a very simple data loading python script for my
> > Java servlet based appengine app.  Unfortunately python can't seem to
> > open an URL from appengine (or the development server anyway).  If you
> > just start with the eclipse appengine project template (call the
> > project fetchtest) then a single servlet will be generated like:
>
> > import java.io.IOException;
> > import javax.servlet.http.*;
>
> > @SuppressWarnings("serial")
> > public class FetchTestServlet extends HttpServlet {
> >         public void doGet(HttpServletRequest req, HttpServletResponse resp)
> >                         throws IOException {
> >                 resp.setContentType("text/plain");
> >                 resp.getWriter().println("Hello, world");
> >         }
>
> > }
>
> > It will serve by default on:  http://localhost:8888/fetchtest
>
> > I then write the python script:
>
> > import urllib2
> > import sys
> > import time
>
> > for i in range(10):
> >     try:
> >         print urllib2.urlopen('http://localhost:8888/
> > fetchtest').read()
> >     except:
> >         print "Unexpected error:", sys.exc_info()
>
> >     time.sleep(1)
>
> > Well, the first time in the python loop the fetch succeeds, but fails
> > after that.  In fact if I run the script again all the calls will
> > fail.  It only ever works the first time I load the URL after
> > restarting the server.  In fact if I load the url in a browser once
> > then the script fails on even the first loop iteration.  The python
> > output looks like:
>
> > >python ../util/test.py
>
> > Hello, world
>
> > Unexpected error: (<class 'socket.error'>, error(54, 'Connection reset
> > by peer'), <traceback object at 0x101044560>)
> > Unexpected error: (<class 'socket.error'>, error(54, 'Connection reset
> > by peer'), <traceback object at 0x1010447e8>)
> > Unexpected error: (<class 'socket.error'>, error(54, 'Connection reset
> > by peer'), <traceback object at 0x1010444d0>)
> > Unexpected error: (<class 'socket.error'>, error(54, 'Connection reset
> > by peer'), <traceback object at 0x101044758>)
> > Unexpected error: (<class 'socket.error'>, error(54, 'Connection reset
> > by peer'), <traceback object at 0x101044560>)
> > Unexpected error: (<class 'socket.error'>, error(54, 'Connection reset
> > by peer'), <traceback object at 0x1010447e8>)
> > Unexpected error: (<class 'socket.error'>, error(54, 'Connection reset
> > by peer'), <traceback object at 0x1010444d0>)
> > Unexpected error: (<class 'socket.error'>, error(54, 'Connection reset
> > by peer'), <traceback object at 0x101044758>)
> > Unexpected error: (<class 'socket.error'>, error(54, 'Connection reset
> > by peer'), <traceback object at 0x101044560>)
>
> > I've tried catching all exceptions and inspecting what state I know
> > how to on the server side, but it seems like there is no error at all
> > in the servlet.  I've tried carefully reading and closing all the
> > different input and output streams in the request and response objects
> > to no avail.  Can anyone help me debug why this doesn't work?  I
> > really don't know where to look.
>
> > Thanks,
> > Matt

-- 
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.

Reply via email to