From: Ronald J. <ro...@ma...> - 2005-04-24 10:21:32
|
Hello, servletContext is giving me the blues... =(. PyServlet have no problem running the following script: from javax.servlet.http import HttpServlet class test(HttpServlet): def doGet(self,req,res): res.getWriter().print(self.servletContext.getRealPath('.')) But if I override the init method of the HttpServlet, even like this: from javax.servlet.http import HttpServlet class test(HttpServlet): def init(self,cfg): pass def doGet(self,req,res): res.getWriter().print(self.servletContext.getRealPath('.')) I get a NullPointerException: java.lang.NullPointerException javax.servlet.GenericServlet.getServletContext(GenericServlet.java:159) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) java.lang.reflect.Method.invoke(Unknown Source) org.python.core.PyBeanProperty._doget(PyBeanProperty.java) org.python.core.PyObject._doget(PyObject.java) org.python.core.PyInstance.__findattr__(PyInstance.java) org.python.core.PyInstance.__findattr__(PyInstance.java) org.python.core.PyObject.__getattr__(PyObject.java) org.python.pycode._pyx5.doGet$3(C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\extranet\test.py:15) org.python.pycode._pyx5.call_function(C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\extranet\test.py) org.python.core.PyTableCode.call(PyTableCode.java) org.python.core.PyTableCode.call(PyTableCode.java) org.python.core.PyTableCode.call(PyTableCode.java) org.python.core.PyFunction.__call__(PyFunction.java) org.python.core.PyMethod.__call__(PyMethod.java) org.python.core.PyObject.__call__(PyObject.java) org.python.core.PyObject._jcallexc(PyObject.java) org.python.proxies.main$test$6.doGet(Unknown Source) javax.servlet.http.HttpServlet.service(HttpServlet.java:689) org.python.proxies.main$test$6.service(Unknown Source) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) org.python.util.PyServlet.service(PyServlet.java) I'm running: WinXP pro. Tomcat 5.5.9 Jython 2.1 Java 1.4.2_08 TIA. Ronald Jaramillo |
From: Kent J. <ke...@td...> - 2005-04-24 11:25:54
|
You need to call HttpServlet.init(self, cfg) from within your init() method. Kent Ronald Jaramillo wrote: > Hello, > servletContext is giving me the blues... =(. > > PyServlet have no problem running the following script: > > from javax.servlet.http import HttpServlet > class test(HttpServlet): > def doGet(self,req,res): > res.getWriter().print(self.servletContext.getRealPath('.')) > > But if I override the init method of the HttpServlet, even like this: > > from javax.servlet.http import HttpServlet > class test(HttpServlet): > def init(self,cfg): > pass > def doGet(self,req,res): > res.getWriter().print(self.servletContext.getRealPath('.')) > > I get a NullPointerException: > > java.lang.NullPointerException > javax.servlet.GenericServlet.getServletContext(GenericServlet.java:159) > sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) > sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) > java.lang.reflect.Method.invoke(Unknown Source) > org.python.core.PyBeanProperty._doget(PyBeanProperty.java) > org.python.core.PyObject._doget(PyObject.java) > org.python.core.PyInstance.__findattr__(PyInstance.java) > org.python.core.PyInstance.__findattr__(PyInstance.java) > org.python.core.PyObject.__getattr__(PyObject.java) > org.python.pycode._pyx5.doGet$3(C:\Program Files\Apache Software > Foundation\Tomcat 5.5\webapps\extranet\test.py:15) > org.python.pycode._pyx5.call_function(C:\Program Files\Apache > Software Foundation\Tomcat 5.5\webapps\extranet\test.py) > org.python.core.PyTableCode.call(PyTableCode.java) > org.python.core.PyTableCode.call(PyTableCode.java) > org.python.core.PyTableCode.call(PyTableCode.java) > org.python.core.PyFunction.__call__(PyFunction.java) > org.python.core.PyMethod.__call__(PyMethod.java) > org.python.core.PyObject.__call__(PyObject.java) > org.python.core.PyObject._jcallexc(PyObject.java) > org.python.proxies.main$test$6.doGet(Unknown Source) > javax.servlet.http.HttpServlet.service(HttpServlet.java:689) > org.python.proxies.main$test$6.service(Unknown Source) > javax.servlet.http.HttpServlet.service(HttpServlet.java:802) > org.python.util.PyServlet.service(PyServlet.java) > > I'm running: > WinXP pro. > Tomcat 5.5.9 > Jython 2.1 > Java 1.4.2_08 > > TIA. > Ronald Jaramillo > > > > ------------------------------------------------------- > SF email is sponsored by - The IT Product Guide > Read honest & candid reviews on hundreds of IT Products from real users. > Discover which products truly live up to the hype. Start reading now. > http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click > _______________________________________________ > Jython-users mailing list > Jyt...@li... > https://lists.sourceforge.net/lists/listinfo/jython-users > |