From: <bc...@wo...> - 2001-02-02 15:11:01
|
[Brian Zhou] >Hello list, > >Following http://groups.yahoo.com/group/jpython/message/3714 I succeeded >making servlet running under PyServlet wrapper/handler on win2k tomcat3.2.1. >So far so good, I can run simple script like: > >import sys, java, javax > >class hello(javax.servlet.http.HttpServlet): > def doGet(self, req, res): > res.setContentType("text/html"); > out = res.getOutputStream() > out.println("""\ ><html> ><head><title>Hello World</title></head> ><body>Hello World! ><P> >current server time is: %s ></P> ></body> ></html> >""" % (java.util.Date())) > out.close() > return > >Or even dynamicly generate PNG graph thanks to the new javax.imagio package >from Sun. I don't expect any difficulty hooking up with database using JDBC. > >However, when trying to port SnoopServlet from java to jython, I found that >PyServlet really doesn't handover any instant variables to the jython >HttpServlet subclass except (request, response). So > > enum = self.getInitParameterNames() > >will got a NullPointerException. Any operation involve self.attribute like >self.getServletContext() will also fail. I don't think jythonc compiled >classes will have this problem because the jython servlet handle service() >directly bypassing PyServlet. > >So my questions are: > >1. Am I missing anything? Any misunderstanding of the API? I'm no expert on servlets, but I think the servlet must be initialized somehow. By adding servlet.init(getServletConfig()); to PyServlet.loadServlet(), I managed to avoid the NPE in getInitParameterNames(). regards, finn |