2014-04-16 74 views
0

當我在tomcat服務器上運行jsp時,它運行正常,但當我單擊提交時會拋出以下錯誤,我檢查了所有內容我不知道該從哪裏出發,因爲它看起來應該可以工作,任何幫助都將非常感謝,謝謝。SEVERE:爲servlet分配異常,嘗試從JSP頁面調用servlet時出錯

錯誤堆棧跟蹤:

SEVERE: Allocate exception for servlet RegistrationServlet 
java.lang.ClassNotFoundException: logon.RegistrationServlet.java 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720) 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571) 
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:529) 
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:511) 
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:139) 
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1148) 
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:864) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:134) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) 
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) 
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040) 
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607) 
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:315) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
at java.lang.Thread.run(Unknown Source) 

的web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:web="http://java.sun.com/xml/ns/javaee" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns /javaee /web-app_2_5.xsd" 
id="WebApp_ID" version="2.5"> 
<display-name>RegistrationTest</display-name> 
<servlet> 
     <display-name>RegistrationServlet</display-name> 
     <servlet-name>RegistrationServlet</servlet-name> 
     <servlet-class>logon.RegistrationServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>RegistrationServlet</servlet-name> 
    <url-pattern>/RegistrationServlet</url-pattern> 
</servlet-mapping> 
</web-app> 

JSP頁面:

<h2>Signup Details</h2> 
     <form name="actionForm" action="RegistrationServlet" method ="post"> 
     <br/>Username:<input type="text" name="name"> 
     <br/>Password:<input type="password" name="password"> 
     <br/>Email:<input type="text" name="email"> 
     <br/><input type="submit" value="Submit"> 
     </form> 

該servlet:

import java.io.IOException; 
import javax.servlet.ServletException; 
import javax.servlet.annotation.WebServlet; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

/** 
    * Servlet implementation class RegistrationServlet 
*/ 
@WebServlet("/RegistrationServlet") 
public class RegistrationServlet extends HttpServlet { 
private static final long serialVersionUID = 1L; 

public RegistrationServlet() { 
    super(); 

} 


protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

} 


protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    try{ 
     System.out.println("In the registration Servlet"); 
     User user = new User(); 
     user.setName(request.getParameter("name")); 
     user.setPassword(request.getParameter("password")); 
     user.setEmail(request.getParameter("email")); 
     RegisterUser.addUser(user); 
     //response.sendRedirect("welcome.jsp");   
    } catch (Throwable exc) 
    { 
     System.out.println(exc); 
    } 
} 

} 
+1

您應該重新構建並重新編譯您的項目。 –

+0

@SotiriosDelimanolis謝謝。我做到了,但現在我的Tomcat服務器由於某種原因無法啓動。現在要做什麼的建議? – SteveK

+0

你在Eclipse上使用嵌入式Tomcat嗎?刪除服務器並重新添加它。清理該項目並重試。 –

回答

3

對於任何未來有類似問題的人來說,在清理完項目之後,請確保在項目下拉菜單中選中了「自動構建」框,因爲這是清理後重建所必需的,默認情況下,原因。

另外我在代碼中犯了一個小錯誤,我在我的servlet中使用了註釋(@webservlet),並且還將該servlet添加到了導致衝突的web.xml中。這現在是通過註釋自動完成的。

-1

再次嘗試清理&構建整個項目。

0

我也得到了相同的異常,只需在web.xml文件中添加完全限定的calssname即可解決。 $完全合格的班級名稱$