Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[smila-user] JSP in embedded Tomcat

Hi, time ago someone in this list was trying to use JSP in SMILA's
OSGi environment.
I tried to do the same, but I'm getting lost.
Servlets work fine, and I created another application alongside with
SMILA/ in the configuration/org.eclipse.smila.tomcat /webapps
directory. However jsp files in this both applications, returning this
very long exception:
javax.servlet.ServletException: java.lang.NoClassDefFoundError:
javax/servlet/Servlet
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:275)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:820)

root cause

java.lang.NoClassDefFoundError: javax/servlet/Servlet
	java.lang.ClassLoader.defineClass1(Native Method)
	java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
	java.lang.ClassLoader.defineClass(ClassLoader.java:616)
	org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:183)
	org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:576)
	org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:546)
	org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:477)
	org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:465)
	org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:445)
	org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:211)
	org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:381)
	org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:457)
	org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)
	org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:398)
	org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105)
	java.lang.ClassLoader.loadClass(ClassLoader.java:248)
	java.lang.ClassLoader.defineClass1(Native Method)
	java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
	java.lang.ClassLoader.defineClass(ClassLoader.java:616)
	org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:183)
	org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:576)
	org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:546)
	org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:477)
	org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:465)
	org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:445)
	org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:211)
	org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:381)
	org.eclipse.osgi.internal.loader.SingleSourcePackage.loadClass(SingleSourcePackage.java:33)
	org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:445)
	org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)
	org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:398)
	org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105)
	java.lang.ClassLoader.loadClass(ClassLoader.java:248)
	java.lang.ClassLoader.defineClass1(Native Method)
	java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
	java.lang.ClassLoader.defineClass(ClassLoader.java:616)
	org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:183)
	org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:576)
	org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:546)
	org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:477)
	org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:465)
	org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:445)
	org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:211)
	org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:381)
	org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:457)
	org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)
	org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:398)
	org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105)
	java.lang.ClassLoader.loadClass(ClassLoader.java:248)
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1374)
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
	org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:128)
	org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:66)
	java.lang.ClassLoader.defineClass1(Native Method)
	java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
	java.lang.ClassLoader.defineClass(ClassLoader.java:616)
	java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
	java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
	java.net.URLClassLoader.access$000(URLClassLoader.java:58)
	java.net.URLClassLoader$1.run(URLClassLoader.java:197)
	java.security.AccessController.doPrivileged(Native Method)
	java.net.URLClassLoader.findClass(URLClassLoader.java:190)
	org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:134)
	org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:66)
	org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:618)
	org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:144)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:820)

root cause

java.lang.ClassNotFoundException: javax.servlet.Servlet
	org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:494)
	org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)
	org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:398)
	org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105)
	java.lang.ClassLoader.loadClass(ClassLoader.java:248)
	java.lang.ClassLoader.defineClass1(Native Method)
	java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
	java.lang.ClassLoader.defineClass(ClassLoader.java:616)
	org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:183)
	org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:576)
	org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:546)
	org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:477)
	org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:465)
	org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:445)
	org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:211)
	org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:381)
	org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:457)
	org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)
	org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:398)
	org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105)
	java.lang.ClassLoader.loadClass(ClassLoader.java:248)
	java.lang.ClassLoader.defineClass1(Native Method)
	java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
	java.lang.ClassLoader.defineClass(ClassLoader.java:616)
	org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:183)
	org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:576)
	org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:546)
	org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:477)
	org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:465)
	org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:445)
	org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:211)
	org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:381)
	org.eclipse.osgi.internal.loader.SingleSourcePackage.loadClass(SingleSourcePackage.java:33)
	org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:445)
	org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)
	org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:398)
	org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105)
	java.lang.ClassLoader.loadClass(ClassLoader.java:248)
	java.lang.ClassLoader.defineClass1(Native Method)
	java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
	java.lang.ClassLoader.defineClass(ClassLoader.java:616)
	org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:183)
	org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:576)
	org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:546)
	org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:477)
	org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:465)
	org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:445)
	org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:211)
	org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:381)
	org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:457)
	org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)
	org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:398)
	org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105)
	java.lang.ClassLoader.loadClass(ClassLoader.java:248)
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1374)
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
	org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:128)
	org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:66)
	java.lang.ClassLoader.defineClass1(Native Method)
	java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
	java.lang.ClassLoader.defineClass(ClassLoader.java:616)
	java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
	java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
	java.net.URLClassLoader.access$000(URLClassLoader.java:58)
	java.net.URLClassLoader$1.run(URLClassLoader.java:197)
	java.security.AccessController.doPrivileged(Native Method)
	java.net.URLClassLoader.findClass(URLClassLoader.java:190)
	org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:134)
	org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:66)
	org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:618)
	org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:144)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:820)

I can see that the jsp files compile fine, as the generated .java and
related .class files are in a subfolder of the work/ directory. Thus
the problem is resolution at runtime, why isn't org.apache.tomcat
seeing the javax.servlet package? (it sees the package when servlets
are used.)


-- 
Giorgio Sironi
Piccolo Principe & Web Engineer
http://giorgiosironi.blogspot.com
http://twitter.com/giorgiosironi


Back to the top