Re: Class is not a servlet
Ok, thank you all very much. I'm still too newbie to make my servlet work (some problems with xindice) but I've changed my java code and now it's really a servlet! Grazie ancora, bye - Original Message - From: Pid [EMAIL PROTECTED] To: Tomcat Users List users@tomcat.apache.org Sent: Saturday, April 28, 2007 11:33 AM Subject: Re: Class is not a servlet Seriously, David's recommendation is the way forwards. When he said, 'read the spec', he was indicating that you should at least have a basic familiarity with what a Servlet is. There are *extensive* and complete tutorials from basic to advanced to found for free online. Search Google (other search engines are available). Clue: Servlets are not written like a bean Class, you do not use the main(...) method. rgds Pid Luca Sabbio wrote: Thank you very much for the two answers. I don't know Java servlet enough to make PartsXupdate work but now I have a way to follow. I highly recommend reading the servlet spec. There you will see a servlet extends HttpServlet and overrides one or more of it's methods. http://jcp.org/en/jsr/detail?id=154 --David Now that I've changed the class file, and re-do the deployment, Tomcat first show me HTTP Status 405 - HTTP method POST is not supported by this URL than I modify PartsXupdate.java as below and only work the out.println import org.xmldb.api.base.*; import org.xmldb.api.modules.*; import org.xmldb.api.*; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; public class PartsXupdate extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); out.println(Commento Inserito); } public static void main(String[] args) throws Exception { Collection col = null; try { String driver = org.apache.xindice.client.xmldb.DatabaseImpl; Class c = Class.forName(driver); Database database = (Database) c.newInstance(); DatabaseManager.registerDatabase(database); col = DatabaseManager.getCollection(xmldb:xindice://localhost:8080/db/test); String xupd = xupdate:modifications version=\1.0\ xmlns:xupdate=\http://www.xmldb.org/xupdate\; + xupdate:insert-after select=\/scheda/info\ + xupdate:element name=\commento\Bel libro!/xupdate:element + /xupdate:insert-after + /xupdate:modifications; String nome = 4.xml; /* We are using XUpdateQueryService */ XUpdateQueryService service = (XUpdateQueryService) col.getService(XUpdateQueryService, 1.0); service.updateResource(nome, xupd); } catch (XMLDBException e) { System.err.println(XML:DB Exception occurred + e.errorCode); } finally { if (col != null) { col.close();} } } } From: Luca Sabbio [mailto:[EMAIL PROTECTED] public class PartsXupdate extends HttpServlet { ... - Peter - To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Class is not a servlet
Seriously, David's recommendation is the way forwards. When he said, 'read the spec', he was indicating that you should at least have a basic familiarity with what a Servlet is. There are *extensive* and complete tutorials from basic to advanced to found for free online. Search Google (other search engines are available). Clue: Servlets are not written like a bean Class, you do not use the main(...) method. rgds Pid Luca Sabbio wrote: Thank you very much for the two answers. I don't know Java servlet enough to make PartsXupdate work but now I have a way to follow. I highly recommend reading the servlet spec. There you will see a servlet extends HttpServlet and overrides one or more of it's methods. http://jcp.org/en/jsr/detail?id=154 --David Now that I've changed the class file, and re-do the deployment, Tomcat first show me HTTP Status 405 - HTTP method POST is not supported by this URL than I modify PartsXupdate.java as below and only work the out.println import org.xmldb.api.base.*; import org.xmldb.api.modules.*; import org.xmldb.api.*; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; public class PartsXupdate extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); out.println(Commento Inserito); } public static void main(String[] args) throws Exception { Collection col = null; try { String driver = org.apache.xindice.client.xmldb.DatabaseImpl; Class c = Class.forName(driver); Database database = (Database) c.newInstance(); DatabaseManager.registerDatabase(database); col = DatabaseManager.getCollection(xmldb:xindice://localhost:8080/db/test); String xupd = xupdate:modifications version=\1.0\ xmlns:xupdate=\http://www.xmldb.org/xupdate\; + xupdate:insert-after select=\/scheda/info\ + xupdate:element name=\commento\Bel libro!/xupdate:element + /xupdate:insert-after + /xupdate:modifications; String nome = 4.xml; /* We are using XUpdateQueryService */ XUpdateQueryService service = (XUpdateQueryService) col.getService(XUpdateQueryService, 1.0); service.updateResource(nome, xupd); } catch (XMLDBException e) { System.err.println(XML:DB Exception occurred + e.errorCode); } finally { if (col != null) { col.close();} } } } From: Luca Sabbio [mailto:[EMAIL PROTECTED] public class PartsXupdate extends HttpServlet { ... - Peter - To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] smime.p7s Description: S/MIME Cryptographic Signature
RE: Class is not a servlet
From: Luca Sabbio [mailto:[EMAIL PROTECTED] public class PartsXupdate extends HttpServlet { ... - Peter - To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Class is not a servlet
I highly recommend reading the servlet spec. There you will see a servlet extends HttpServlet and overrides one or more of it's methods. http://jcp.org/en/jsr/detail?id=154 --David Luca Sabbio wrote: Hi, I'm working with Java 1.5.0.06, Tomcat 5.5.16 with Xindice 1.1b4 and Cocoon 2.1.10 deployed (and working). I try to run a simple web application based on a servlet that update the Xindice XML DB By the command line the PartsXupdate.java is compiled and the PartsXupdate.class works. import org.xmldb.api.base.*; import org.xmldb.api.modules.*; import org.xmldb.api.*; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; public class PartsXupdate { public static void main(String[] args) throws Exception { Collection col = null; try { String driver = org.apache.xindice.client.xmldb.DatabaseImpl; Class c = Class.forName(driver); Database database = (Database) c.newInstance(); DatabaseManager.registerDatabase(database); col = DatabaseManager.getCollection(xmldb:xindice://localhost:8080/db/test); String xupd = xupdate:modifications version=\1.0\ xmlns:xupdate=\http://www.xmldb.org/xupdate\; + xupdate:insert-after select=\/scheda/info\ + xupdate:element name=\commento\Bel libro!/xupdate:element + /xupdate:insert-after + /xupdate:modifications; String nome = 4.xml; /* We are using XUpdateQueryService */ XUpdateQueryService service = (XUpdateQueryService) col.getService(XUpdateQueryService, 1.0); service.updateResource(nome, xupd); } catch (XMLDBException e) { System.err.println(XML:DB Exception occurred + e.errorCode); } finally { if (col != null) { col.close();} } } } But when I deploy the application on Tomcat and I do my post action http://localhost:8080/PartsXupdate/PartsXupdate from the form of provajava.html I get this error: javax.servlet.ServletException: Class PartsXupdate is not a Servlet I think that my web.xml is ok ?xml version=1.0 encoding=ISO-8859-1? web-app xmlns=http://java.sun.com/xml/ns/j2ee; xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; xsi:schemaLocation=http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd; version=2.4 display-nameesempio_servlet_xupdate/display-name description Esempio di uso di servlet_xupdate /description !-- JSPC servlet mappings start -- servlet servlet-namePartsXupdate/servlet-name servlet-classPartsXupdate/servlet-class /servlet servlet-mapping servlet-namePartsXupdate/servlet-name url-pattern/PartsXupdate/url-pattern /servlet-mapping welcome-file-list welcome-fileprovajava.html/welcome-file /welcome-file-list /web-app Also classpath would be ok. Is there something to set in Tomcat? I've read many mailing list and tried some changes but without results, any suggestion would be appreciate. Thanks - To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Class is not a servlet
Thank you very much for the two answers. I don't know Java servlet enough to make PartsXupdate work but now I have a way to follow. I highly recommend reading the servlet spec. There you will see a servlet extends HttpServlet and overrides one or more of it's methods. http://jcp.org/en/jsr/detail?id=154 --David Now that I've changed the class file, and re-do the deployment, Tomcat first show me HTTP Status 405 - HTTP method POST is not supported by this URL than I modify PartsXupdate.java as below and only work the out.println import org.xmldb.api.base.*; import org.xmldb.api.modules.*; import org.xmldb.api.*; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; public class PartsXupdate extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); out.println(Commento Inserito); } public static void main(String[] args) throws Exception { Collection col = null; try { String driver = org.apache.xindice.client.xmldb.DatabaseImpl; Class c = Class.forName(driver); Database database = (Database) c.newInstance(); DatabaseManager.registerDatabase(database); col = DatabaseManager.getCollection(xmldb:xindice://localhost:8080/db/test); String xupd = xupdate:modifications version=\1.0\ xmlns:xupdate=\http://www.xmldb.org/xupdate\; + xupdate:insert-after select=\/scheda/info\ + xupdate:element name=\commento\Bel libro!/xupdate:element + /xupdate:insert-after + /xupdate:modifications; String nome = 4.xml; /* We are using XUpdateQueryService */ XUpdateQueryService service = (XUpdateQueryService) col.getService(XUpdateQueryService, 1.0); service.updateResource(nome, xupd); } catch (XMLDBException e) { System.err.println(XML:DB Exception occurred + e.errorCode); } finally { if (col != null) { col.close();} } } } From: Luca Sabbio [mailto:[EMAIL PROTECTED] public class PartsXupdate extends HttpServlet { ... - Peter - To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]