You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Sonia Galilea Varea <ga...@ebro.cps.unizar.es> on 2001/11/06 09:31:28 UTC

call a servlet from another servlet

Hi,

    I have a servlet derived from HttpServlet and when its init() method
is executed, I have to call another servlet to begin to execute too. The
call to that other servlet is via:

    URL myURL  = new URL("   ...............URL of the other
servlet...............    ");
    URLConnection myURLConnection = myURL.openConnection();
    myURLConnection.getInputStream(); //here, the URL is executed...

The problem is when, in web.xml file, I write
<load-on-startup>0</load-on-startup>    so that the first servlet begins
executing when Tomcat begins.
If I call the first servlet from the URL of the navigator, it works OK.
But if I want the servlet to execute its init() method when Tomcat
starts, when Tomcat is going to execute
myURLConnection.getInputStream();         the next exception is ocurred:

java.net.ConnectionException: Connection refused: no further information

    at java.net.PlainSocketImpl.socketConnection(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:312)
    at
java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:125)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:112)
    at java.net.Socket.(init)(Socket.java:273)
    at java.net.Socket.(init)(Socket.java:100)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:50)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:331)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:517)
    at sun.net.www.http.HttpClient.(init)(HttpClient.java:267)
    at sun.net.www.http.HttpClient.(init)(HttpClient.java:277)
    at sun.net.www.http.HttpClient.New(HttpClient.java:289)
    at
sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:379)

    at
sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:472)

    .......
    at
org.apache.tomcat.core.LoadOnStartupInterceptor.contextInit(LoadOnStartupInterceptor.java:130)

    at
org.apache.tomcat.core.ContextManager.initContext(ContextManager.java:491)

    at
org.apache.tomcat.core.ContextManager.init(ContextManager.java:453)
    at org.apache.tomcat.startup.Tomcat.execute(Tomcat.java:195)
    at org.apache.tomcat.startup.Tomcat.main(Tomcat.java:235)


I need the first servlet call the second one and this first servlet is
executed (its init() method) when Tomcat starts, not when the servlet
receives its first request. How can I do it?

Thanks.