2 Replies Latest reply on Aug 10, 2001 1:22 AM by 3004

    JMS and Classloader servlet weird behavior

    3004
      Hi,
                
                WL 5.1 sp10, Solaris 2.7, JDK 1.3.1
                
                I have a java client that constructs an InitialContext to my server, looks up JMSConnectionFactory
                and Topic, and does JMS. All of this works fine, except I see strange, non-fatal errors on the
                server side regarding a badly constructed 404.jsp page. Now I have the following entries set for
                error page redirection:
                
                weblogic.httpd.errorPage.404=/err/404.jsp
                weblogic.httpd.errorPage.500=/err/500.jsp
                
                And our custom 404 and 500.jsp pages are actually quite complex, calling taglibs that require
                certain params and attributes from the request URI. So if a badly formatted URI goes through, we
                get an NullPointerException:
                
                java.lang.NullPointerException
                at java.util.StringTokenizer.<init>(StringTokenizer.java:122)
                at java.util.StringTokenizer.<init>(StringTokenizer.java:138)
                at com.kiko.domain.DomainName.parseName(DomainName.java:318)
                at com.kiko.domain.DomainName.<init>(DomainName.java:46)
                at com.kiko.domain.DomainName$Cache.miss(DomainName.java:373)
                at com.kiko.util.BasicCache.get(BasicCache.java:47)
                at com.kiko.domain.DomainName.getDomainName(DomainName.java:66)
                at com.kiko.domain.DomainName.getDomainNameFromHost(DomainName.java:101)
                at com.kiko.domain.UserIdentity.isLoggedIn(UserIdentity.java:68)
                at com.kiko.domain.UserIdentity.isLoggedIn(UserIdentity.java:56)
                at com.kiko.jsp.JSPUtil.isLoggedIn(JSPUtil.java:85)
                at com.kiko.jsp._err.__404._jspService(__404.java:90)
                at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
                at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:120)
                at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:138)
                at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:168)
                at weblogic.servlet.internal.ServletResponseImpl.sendError(ServletResponseImpl.java:402)
                at weblogic.servlet.internal.ServletResponseImpl.sendError(ServletResponseImpl.java:318)
                at weblogic.servlet.ClasspathServlet.doGet(ClasspathServlet.java:66)
                at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
                at javax.servlet.http.HttpServlet.service(HttpServlet.java:865)
                at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:120)
                at weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImpl.java:922)
                at weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImpl.java:886)
                at
                weblogic.servlet.internal.ServletContextManager.invokeServlet(ServletContextManager.java:269)
                at weblogic.socket.MuxableSocketHTTP.invokeServlet(MuxableSocketHTTP.java:380)
                at weblogic.socket.MuxableSocketHTTP.execute(MuxableSocketHTTP.java:268)
                at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:129)
                
                Now I check access.log and find the following:
                
                10.1.1.22 - - [09/Aug/2001:14:57:57 -0700] "GET
                /classes/weblogic/rmi/internal/DGCServerImpl_WLStub.class HTTP/1.0" 500 5
                10.1.1.22 - - [09/Aug/2001:14:57:57 -0700] "GET
                /classes/weblogic/jms/client/JMSTopicSession_WLStub.class HTTP/1.0" 500 5
                
                OK, so I see a couple of problems here:
                
                1) First I check weblogic's classpath and weblogic.jar; DGCServerImpl_WLStub and
                JMSTopicSession_WLStub do not exist. Why is the client trying to request these classes through the
                classloader servlet?
                
                2) If WL's internal classloader servlet does not find the class from the request, it should not
                redirect to 404 page, either default or client-set; this can be problematic, as you can see from my
                stacktrace above.
                
                Gene
                
                
                
                
        • 1. Re: JMS and Classloader servlet weird behavior
          3004
          seems like a regression in SP10.
                    pls involve support.
                    
                    
                    Gene Chuang wrote:
                    
                    > Hi,
                    >
                    > WL 5.1 sp10, Solaris 2.7, JDK 1.3.1
                    >
                    > I have a java client that constructs an InitialContext to my server, looks up JMSConnectionFactory
                    > and Topic, and does JMS. All of this works fine, except I see strange, non-fatal errors on the
                    > server side regarding a badly constructed 404.jsp page. Now I have the following entries set for
                    > error page redirection:
                    >
                    > weblogic.httpd.errorPage.404=/err/404.jsp
                    > weblogic.httpd.errorPage.500=/err/500.jsp
                    >
                    > And our custom 404 and 500.jsp pages are actually quite complex, calling taglibs that require
                    > certain params and attributes from the request URI. So if a badly formatted URI goes through, we
                    > get an NullPointerException:
                    >
                    > java.lang.NullPointerException
                    > at java.util.StringTokenizer.<init>(StringTokenizer.java:122)
                    > at java.util.StringTokenizer.<init>(StringTokenizer.java:138)
                    > at com.kiko.domain.DomainName.parseName(DomainName.java:318)
                    > at com.kiko.domain.DomainName.<init>(DomainName.java:46)
                    > at com.kiko.domain.DomainName$Cache.miss(DomainName.java:373)
                    > at com.kiko.util.BasicCache.get(BasicCache.java:47)
                    > at com.kiko.domain.DomainName.getDomainName(DomainName.java:66)
                    > at com.kiko.domain.DomainName.getDomainNameFromHost(DomainName.java:101)
                    > at com.kiko.domain.UserIdentity.isLoggedIn(UserIdentity.java:68)
                    > at com.kiko.domain.UserIdentity.isLoggedIn(UserIdentity.java:56)
                    > at com.kiko.jsp.JSPUtil.isLoggedIn(JSPUtil.java:85)
                    > at com.kiko.jsp._err.__404._jspService(__404.java:90)
                    > at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
                    > at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:120)
                    > at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:138)
                    > at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:168)
                    > at weblogic.servlet.internal.ServletResponseImpl.sendError(ServletResponseImpl.java:402)
                    > at weblogic.servlet.internal.ServletResponseImpl.sendError(ServletResponseImpl.java:318)
                    > at weblogic.servlet.ClasspathServlet.doGet(ClasspathServlet.java:66)
                    > at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
                    > at javax.servlet.http.HttpServlet.service(HttpServlet.java:865)
                    > at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:120)
                    > at weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImpl.java:922)
                    > at weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImpl.java:886)
                    > at
                    > weblogic.servlet.internal.ServletContextManager.invokeServlet(ServletContextManager.java:269)
                    > at weblogic.socket.MuxableSocketHTTP.invokeServlet(MuxableSocketHTTP.java:380)
                    > at weblogic.socket.MuxableSocketHTTP.execute(MuxableSocketHTTP.java:268)
                    > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:129)
                    >
                    > Now I check access.log and find the following:
                    >
                    > 10.1.1.22 - - [09/Aug/2001:14:57:57 -0700] "GET
                    > /classes/weblogic/rmi/internal/DGCServerImpl_WLStub.class HTTP/1.0" 500 5
                    > 10.1.1.22 - - [09/Aug/2001:14:57:57 -0700] "GET
                    > /classes/weblogic/jms/client/JMSTopicSession_WLStub.class HTTP/1.0" 500 5
                    >
                    > OK, so I see a couple of problems here:
                    >
                    > 1) First I check weblogic's classpath and weblogic.jar; DGCServerImpl_WLStub and
                    > JMSTopicSession_WLStub do not exist. Why is the client trying to request these classes through the
                    > classloader servlet?
                    >
                    > 2) If WL's internal classloader servlet does not find the class from the request, it should not
                    > redirect to 404 page, either default or client-set; this can be problematic, as you can see from my
                    > stacktrace above.
                    >
                    > Gene
                    
                    
          • 2. Re: JMS and Classloader servlet weird behavior
            3004
            done
                      
                      "Kumar Allamraju" <kumarA@bea.com> wrote in message news:3B732A74.37303089@bea.com...
                      > seems like a regression in SP10.
                      > pls involve support.
                      >
                      >
                      > Gene Chuang wrote:
                      >
                      > > Hi,
                      > >
                      > > WL 5.1 sp10, Solaris 2.7, JDK 1.3.1
                      > >
                      > > I have a java client that constructs an InitialContext to my server, looks up
                      JMSConnectionFactory
                      > > and Topic, and does JMS. All of this works fine, except I see strange, non-fatal errors on the
                      > > server side regarding a badly constructed 404.jsp page. Now I have the following entries set
                      for
                      > > error page redirection:
                      > >
                      > > weblogic.httpd.errorPage.404=/err/404.jsp
                      > > weblogic.httpd.errorPage.500=/err/500.jsp
                      > >
                      > > And our custom 404 and 500.jsp pages are actually quite complex, calling taglibs that require
                      > > certain params and attributes from the request URI. So if a badly formatted URI goes through,
                      we
                      > > get an NullPointerException:
                      > >
                      > > java.lang.NullPointerException
                      > > at java.util.StringTokenizer.<init>(StringTokenizer.java:122)
                      > > at java.util.StringTokenizer.<init>(StringTokenizer.java:138)
                      > > at com.kiko.domain.DomainName.parseName(DomainName.java:318)
                      > > at com.kiko.domain.DomainName.<init>(DomainName.java:46)
                      > > at com.kiko.domain.DomainName$Cache.miss(DomainName.java:373)
                      > > at com.kiko.util.BasicCache.get(BasicCache.java:47)
                      > > at com.kiko.domain.DomainName.getDomainName(DomainName.java:66)
                      > > at com.kiko.domain.DomainName.getDomainNameFromHost(DomainName.java:101)
                      > > at com.kiko.domain.UserIdentity.isLoggedIn(UserIdentity.java:68)
                      > > at com.kiko.domain.UserIdentity.isLoggedIn(UserIdentity.java:56)
                      > > at com.kiko.jsp.JSPUtil.isLoggedIn(JSPUtil.java:85)
                      > > at com.kiko.jsp._err.__404._jspService(__404.java:90)
                      > > at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
                      > > at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:120)
                      > > at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:138)
                      > > at
                      weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:168)
                      > > at weblogic.servlet.internal.ServletResponseImpl.sendError(ServletResponseImpl.java:402)
                      > > at weblogic.servlet.internal.ServletResponseImpl.sendError(ServletResponseImpl.java:318)
                      > > at weblogic.servlet.ClasspathServlet.doGet(ClasspathServlet.java:66)
                      > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
                      > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:865)
                      > > at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:120)
                      > > at
                      weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImpl.java:922)
                      > > at
                      weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImpl.java:886)
                      > > at
                      > > weblogic.servlet.internal.ServletContextManager.invokeServlet(ServletContextManager.java:269)
                      > > at weblogic.socket.MuxableSocketHTTP.invokeServlet(MuxableSocketHTTP.java:380)
                      > > at weblogic.socket.MuxableSocketHTTP.execute(MuxableSocketHTTP.java:268)
                      > > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:129)
                      > >
                      > > Now I check access.log and find the following:
                      > >
                      > > 10.1.1.22 - - [09/Aug/2001:14:57:57 -0700] "GET
                      > > /classes/weblogic/rmi/internal/DGCServerImpl_WLStub.class HTTP/1.0" 500 5
                      > > 10.1.1.22 - - [09/Aug/2001:14:57:57 -0700] "GET
                      > > /classes/weblogic/jms/client/JMSTopicSession_WLStub.class HTTP/1.0" 500 5
                      > >
                      > > OK, so I see a couple of problems here:
                      > >
                      > > 1) First I check weblogic's classpath and weblogic.jar; DGCServerImpl_WLStub and
                      > > JMSTopicSession_WLStub do not exist. Why is the client trying to request these classes through
                      the
                      > > classloader servlet?
                      > >
                      > > 2) If WL's internal classloader servlet does not find the class from the request, it should not
                      > > redirect to 404 page, either default or client-set; this can be problematic, as you can see
                      from my
                      > > stacktrace above.
                      > >
                      > > Gene
                      >