Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[smila-user] Integration of servlets

I was creating a custom servlet which would work over the search api,
so I did the following:
- created new bundle with this MANIFEST.MF:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Servlet
Bundle-SymbolicName: it.polimi.chansonnier.servlet
Bundle-Version: 1.0.0.alpha
Bundle-Activator: it.polimi.chansonnier.servlet.Activator
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Import-Package: javax.servlet;version="2.5.0",
 javax.servlet.http;version="2.5.0",
 org.osgi.framework;version="1.3.0"
Export-Package: it.polimi.chansonnier.servlet;version="1.0.0.alpha"
Eclipse-RegisterBuddy: org.apache.tomcat, org.eclipse.smila.tomcat

- created the servlet:
package it.polimi.chansonnier.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class AddServlet extends HttpServlet {
	protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
		PrintWriter writer = response.getWriter();
		writer.println("Hello from AddServlet of it.polimi.chansonnier.servlet...");
    }
}

- created web-apps/chansonnier/WEB-INF/web.xml in
configuration/org.eclipse.smila.tomcat:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web
Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd";>
<web-app>

  <servlet>
    <servlet-name>add</servlet-name>
    <servlet-class>it.polimi.chansonnier.servlet.AddServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>add</servlet-name>
    <url-pattern>/add</url-pattern>
  </servlet-mapping>

</web-app>

According to the OSGi prompt, the bundle is started (has been added to
SMILA.launch/SMILA.launch and I set its autostart option to true), but
I get an exception when going to localhost:8080/chansonnier/add. The
OSGi prompt says:
osgi> Apr 30, 2010 10:46:00 AM org.apache.catalina.core.ApplicationContext log
INFO: Marking servlet add as unavailable
Apr 30, 2010 10:46:00 AM org.apache.catalina.core.ApplicationContext log
SEVERE: Error loading WebappClassLoader
  delegate: false
  repositories:
----------> Parent Classloader:
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader@13af084
 it.polimi.chansonnier.servlet.AddServlet
java.lang.ClassNotFoundException: it.polimi.chansonnier.servlet.AddServlet
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1094)
	at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:808)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Thread.java:619)
Apr 30, 2010 10:46:00 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Allocate exception for servlet add
java.lang.ClassNotFoundException: it.polimi.chansonnier.servlet.AddServlet
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1094)
	at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:808)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Thread.java:619)

Any obvious mistake?

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


Back to the top