Hi all,

We have successfully deployed some servlets using JBoss 4.0.1. We are now 
trying to use the Velocity template engine (which we have used running just 
tomcat and apache). When accessing the servlet all we get is the exception 
below, saying that the class is not a servlet.


  | javax.servlet.ServletException: Class 
com.transactive.online.submission.LoanSubmitServlet is not a Servlet
  |     
org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:66)
  |     
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:150)
  |     
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:54)
  |     
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
  |     org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
  |     
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
  |     
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
  |     
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
  |     
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
  |     java.lang.Thread.run(Thread.java:536)
  | 
  | root cause
  | 
  | java.lang.ClassCastException
  |     
com.sun.corba.se.internal.javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:293)
  |     javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:134)
  |     
com.transactive.online.submission.LoanSubmitServlet.<init>(LoanSubmitServlet.java:35)
  |     sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
  |     
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
  |     
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
  |     java.lang.reflect.Constructor.newInstance(Constructor.java:274)
  |     java.lang.Class.newInstance0(Class.java:306)
  |     java.lang.Class.newInstance(Class.java:259)
  |     
org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:66)
  |     
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:150)
  |     
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:54)
  |     
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
  |     org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
  |     
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
  |     
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
  |     
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
  |     
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
  |     java.lang.Thread.run(Thread.java:536)
  | 

Here is the code for the servlet:


  | package com.transactive.online.submission;
  | 
  | import java.io.FileNotFoundException;
  | import java.io.IOException;
  | import java.util.Properties;
  | 
  | import javax.naming.InitialContext;
  | import javax.naming.NamingException;
  | import javax.rmi.PortableRemoteObject;
  | import javax.servlet.ServletConfig;
  | import javax.servlet.http.HttpServletRequest;
  | import javax.servlet.http.HttpServletResponse;
  | 
  | import org.apache.velocity.Template;
  | import org.apache.velocity.app.Velocity;
  | import org.apache.velocity.context.Context;
  | import org.apache.velocity.exception.ParseErrorException;
  | import org.apache.velocity.exception.ResourceNotFoundException;
  | import org.apache.velocity.servlet.VelocityServlet;
  | 
  | public class LoanSubmitServlet extends /*HttpServlet*/ VelocityServlet 
  | {
  |     /*public void doGet(HttpServletRequest request, HttpServletResponse 
response) throws ServletException, IOException
  |     {
  |             PrintWriter out = response.getWriter();
  |             out.print("<HTML><H1>TEST</H1></HTML>");
  |             out.flush();
  |             return;         
  |     }*/
  |     
  |     LoanSubmit loanSubmit = null;
  |     public LoanSubmitServlet() throws NamingException
  |     {
  |             javax.naming.Context ctx = new InitialContext();
  |             LoanSubmitHome home = (LoanSubmitHome) 
PortableRemoteObject.narrow(ctx.lookup("LoanSubmit"), LoanSubmit.class);
  |             try
  |             {
  |                     loanSubmit = home.create();
  |             }
  |             catch(Exception e) {}           
  |     }
  |     
  |     protected Properties loadConfiguration(ServletConfig config) throws 
IOException, FileNotFoundException
  |     {
  |             Properties p = new Properties();
  |             String path = config.getServletContext().getRealPath("/vm");
  |             if(path == null)
  |             {
  |                     System.out.println(" SampleServlet.loadConfiguration() 
: unable to get "
  |                                                              + "the current 
webapp root. Using '/'. Please fix.");
  |                     path = "/";
  |             }
  |             p.setProperty(Velocity.FILE_RESOURCE_LOADER_PATH,  path);
  |             p.setProperty("runtime.log", path + "velocity.log");
  |             return p;               
  |     }
  |     
  |     public Template handleRequest(HttpServletRequest request, 
HttpServletResponse response, Context ctx)
  |     {
  |             Template outty = null;
  |             try
  |             {
  |                     outty = getTemplate("login.vm");
  |         }
  |             catch(ParseErrorException pee)
  |             {
  |                     System.out.println("parse error for template " + pee);
  |         }
  |             catch(ResourceNotFoundException rnfe)
  |             {
  |                     System.out.println("template not found " + rnfe);
  |         }
  |             catch(Exception e)
  |             {
  |                     System.out.println("Error " + e);
  |             }
  |             return outty;           
  |     }
  | }
  | 

Changing it to a HttpServlet and implementing the doGet method works as 
expected, its just when we extend VelocityServlet that it throws the exception.

Any help on this matter would be greatly appreciated.

Cheers,

Ryan Thomas
TransActive Systems

View the original post : 
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3881009#3881009

Reply to the post : 
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3881009


-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games.  How far can you shotput
a projector? How fast can you ride your desk chair down the office luge track?
If you want to score the big prize, get to know the little guy.  
Play to win an NEC 61" plasma display: http://www.necitguy.com/?r=20
_______________________________________________
JBoss-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to