PC_MAGAS Δημοσ. 7 Μαρτίου 2015 Δημοσ. 7 Μαρτίου 2015 Παίδες θέλω μια μιιικρή βοήθεια με servlets. Κατ' αρχας να σημειώσω ότι κάνω compile με Maven και ευθεύς εξ' αρχής σας δίνω το pom.xml: project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>web</groupId> <artifactId>simple-servlet</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>simple-servlet Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.0.1</version> <scope>provided</scope> </dependency> </dependencies> <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> </plugins> <finalName>simple-servlet</finalName> </build> </project> Και την Δομή του Project (προ compile): . ├── pom.xml ├── simple-servlet.iml └── src └── main ├── java │ └── test │ └── Test.java ├── resources └── webapp ├── index.jsp └── WEB-INF └── web.xml Όταν κάνω compile επιτυχώς η δομή γίνεται έτσι: pcmagas@dimitris:~/Kwdikas/java/simple-servlet$ tree . ├── pom.xml ├── simple-servlet.iml ├── src │ └── main │ ├── java │ │ └── test │ │ └── Test.java │ ├── resources │ └── webapp │ ├── index.jsp │ └── WEB-INF │ └── web.xml └── target ├── classes │ └── test │ └── Test.class ├── generated-sources │ └── annotations ├── maven-archiver │ └── pom.properties ├── simple-servlet │ ├── index.jsp │ ├── META-INF │ └── WEB-INF │ ├── classes │ │ └── test │ │ └── Test.class │ └── web.xml ├── simple-servlet.war └── surefire Και παράγεται το simple-servlet.war, που περιέχει τα εξής αρχεία: pcmagas@dimitris:~/Kwdikas/java/simple-servlet/target$ jar tvf ./simple-servlet.war 0 Sat Mar 07 21:19:38 EET 2015 META-INF/ 126 Sat Mar 07 21:19:36 EET 2015 META-INF/MANIFEST.MF 0 Sat Mar 07 21:19:36 EET 2015 WEB-INF/ 0 Sat Mar 07 21:19:36 EET 2015 WEB-INF/classes/ 0 Sat Mar 07 21:19:36 EET 2015 WEB-INF/classes/test/ 128 Sun Mar 01 13:05:04 EET 2015 index.jsp 463 Sat Mar 07 21:08:54 EET 2015 WEB-INF/web.xml 925 Sat Mar 07 21:19:34 EET 2015 WEB-INF/classes/test/Test.class 0 Sat Mar 07 21:19:38 EET 2015 META-INF/maven/ 0 Sat Mar 07 21:19:38 EET 2015 META-INF/maven/web/ 0 Sat Mar 07 21:19:38 EET 2015 META-INF/maven/web/simple-servlet/ 1200 Sat Mar 07 19:56:40 EET 2015 META-INF/maven/web/simple-servlet/pom.xml 109 Sat Mar 07 21:19:36 EET 2015 META-INF/maven/web/simple-servlet/pom.properties Δηλαδή σε απλά Ελληνικά βάζει το .class εντός το WEB-INF/classes. Και το Test.class έχει το εξής περιεχόμενο: package test; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.*; import javax.servlet.http.*; class Test extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/plain;charset=UTF-8"); PrintWriter out=response.getWriter(); out.println("Hello"); } } Και για να μπορούμε να το σερβίρουμε το web.xml έχει: <!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>Archetype Created Web Application</display-name> <servlet> <servlet-name>Test</servlet-name> <servlet-class>test.Test</servlet-class> </servlet> <servlet-mapping> <servlet-name>Test</servlet-name> <url-pattern>/test</url-pattern> </servlet-mapping> </web-app> Αλλά όταν το κάνω deploy στον tomcat δίνω το url http://localhost:8080/simple-servlet/test και παίρνω τα εξής στον Browser μου: type Exception report message Error instantiating servlet class test.Test description The server encountered an internal error that prevented it from fulfilling this request. exception javax.servlet.ServletException: Error instantiating servlet class test.Test org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040) org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607) org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:315) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) java.lang.Thread.run(Thread.java:745) root cause java.lang.IllegalAccessException: Class org.apache.catalina.core.DefaultInstanceManager can not access a member of class test.Test with modifiers "" sun.reflect.Reflection.ensureMemberAccess(Reflection.java:109) java.lang.Class.newInstance(Class.java:373) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040) org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607) org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:315) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) java.lang.Thread.run(Thread.java:745) note The full stack trace of the root cause is available in the Apache Tomcat/7.0.52 (Ubuntu) logs. Έχετε ιδέα τις πταίει;
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα