Erro ao executar Servlet

2 respostas
R

Estou tentando executar esse Servlet de teste:

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class WelcomeServlet extends HttpServlet {
	// process "get" requests from clients
	public void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException {
		response.setContentType( "text/html" );
		PrintWriter out = response.getWriter();
		// start XHTML document                    
		out.println( "<?xml version = \"1.0\"?>" );
        out.printf( "%s%s%s" , "<!DOCTYPE html PUBLIC", " \"-//W3C//DTD XHTML 1.0 Strict//EN\"", " \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n" );
        out.println( "<html xmlns = \"http://www.w3.org/1999/xhtml\">" );
        // head section of document
        out.println( "<head>" );
        out.println( "<title>A Simple Servlet Example</title>" );
        out.println( "</head>" );
        // body section of document
        out.println( "<body>" );
        out.println( "<h1>Welcome to Servlets!</h1>" );
        out.println( "</body>" );
        // end XHTML document
        out.println( "</html>" );
        out.close();  // close stream to complete the page
	} // end method doGet
	WelcomeServlet() {
		
	}
} // end class WelcomeServlet

mas o tomcat está retornando isso:

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Error instantiating servlet class WelcomeServlet
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
	org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:535)
	org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
	org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:790)
	org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:709)
	org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:572)
	org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:644)
	java.lang.Thread.run(Thread.java:595)

root cause

java.lang.IllegalAccessException: Class org.apache.catalina.core.StandardWrapper can not access a member of class WelcomeServlet with modifiers ""
	sun.reflect.Reflection.ensureMemberAccess(Reflection.java:65)
	java.lang.Class.newInstance0(Class.java:344)
	java.lang.Class.newInstance(Class.java:303)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
	org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:535)
	org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
	org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:790)
	org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:709)
	org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:572)
	org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:644)
	java.lang.Thread.run(Thread.java:595)

Segue o arquivo web.xml:

<?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>
  <display-name>Welcome to Tomcat</display-name>
  <description>Welcome to Tomcat</description>

    <servlet>
        <servlet-name>WelcomeServlet</servlet-name>
        <servlet-class>WelcomeServlet</servlet-class>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>WelcomeServlet</servlet-name>
        <url-pattern>/welcome</url-pattern>
     </servlet-mapping>

</web-app>

a URI é: http://localhost:8080/central/welcome

Se alguém souber algo, eu agradeço.

2 Respostas

C

neste trecho do código

out.println( "<h1>Welcome to Servlets!</h1>" );
         out.println( "</body>" );
         // end XHTML document
         out.println( "</html>" );
         out.close();  // close stream to complete the page
 	} // end method doGet
 	WelcomeServlet() {
 		
 	}
 } // end class WelcomeServlet

retire isso:

WelcomeServlet() {
 		
 	}

Assim funciona :slight_smile:

R

Funcionou. Valew d+

Criado 29 de junho de 2006
Ultima resposta 29 de jun. de 2006
Respostas 2
Participantes 2