java.lang.ClassNotFoundException : com. 赋值.controller.CRUDController

标签 java tomcat servlets classnotfoundexception

Picure Here

注意:在上图中,它表示包名称是 assignmentdan,问题中不存在“dan”,但这绝不会影响此错误!

将我的 Eclipse 应用程序部署到在 TOMCAT8 上运行的 AWS 时,它不会显示我的 SQL 数据库。我检查了日志,有这个异常:

05-Apr-2016 13:57:23.975 INFO [http-nio-8080-exec-1] org.apache.catalina.core.ApplicationContext.log Marking servlet CRUDController as unavailable
05-Apr-2016 13:57:23.978 SEVERE [http-nio-8080-exec-1] org.apache.catalina.core.StandardWrapperValve.invoke Allocate exception for servlet CRUDController

java.lang.ClassNotFoundException: com.assignment.controller.CRUDController
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:520)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:501)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:120)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1095)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:817)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:135)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)

有谁知道这对我的 Servlet 意味着什么?一切似乎都井然有序??

CRUDController(我在其中创建我的 servlet)

public class CRUDController extends HttpServlet {
    private static final long serialVersionUID = 1L;
    private CrudDao dao;

    public CRUDController() {
        dao=new CrudDao();
    }


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

    }


    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        if(request.getParameter("action")!=null){
            List<User> lstUser=new ArrayList<User>();
            String action=(String)request.getParameter("action");
            Gson gson = new Gson();
            response.setContentType("application/json");

            if(action.equals("list")){
                try{                        
                //Fetch Data from User Table
                lstUser=dao.getAllUsers();          
                //Convert Java Object to Json               
                JsonElement element = gson.toJsonTree(lstUser, new TypeToken<List<User>>() {}.getType());
                JsonArray jsonArray = element.getAsJsonArray();
                String listData=jsonArray.toString();               
                //Return Json in the format required by jTable plugin
                listData="{\"Result\":\"OK\",\"Records\":"+listData+"}";            
                response.getWriter().print(listData);
                }catch(Exception ex){
                    String error="{\"Result\":\"ERROR\",\"Message\":"+ex.getMessage()+"}";
                    response.getWriter().print(error);
                    ex.printStackTrace();
                }               
            }
            else if(action.equals("create") || action.equals("update")){
                User user=new User();
                if(request.getParameter("userid")!=null){                  
                   int userid=Integer.parseInt(request.getParameter("userid"));
                   user.setUserid(userid);
                }
                if(request.getParameter("firstName")!=null){
                    String firstname=(String)request.getParameter("firstName");
                    user.setFirstName(firstname);
                }
                if(request.getParameter("lastName")!=null){
                   String lastname=(String)request.getParameter("lastName");
                   user.setLastName(lastname);
                }
                if(request.getParameter("email")!=null){
                   String email=(String)request.getParameter("email");
                   user.setEmail(email);
                }
                try{                                            
                    if(action.equals("create")){//Create new record
                        dao.addUser(user);                  
                        lstUser.add(user);
                        //Convert Java Object to Json               
                        String json=gson.toJson(user);                  
                        //Return Json in the format required by jTable plugin
                        String listData="{\"Result\":\"OK\",\"Record\":"+json+"}";                                          
                        response.getWriter().print(listData);
                    }else if(action.equals("update")){//Update existing record
                        dao.updateUser(user);
                        String listData="{\"Result\":\"OK\"}";                                  
                        response.getWriter().print(listData);
                    }
                }catch(Exception ex){
                        String error="{\"Result\":\"ERROR\",\"Message\":"+ex.getStackTrace().toString()+"}";
                        response.getWriter().print(error);
                }
            }else if(action.equals("delete")){//Delete record
                try{
                    if(request.getParameter("userid")!=null){
                        String userid=(String)request.getParameter("userid");
                        dao.deleteUser(Integer.parseInt(userid));
                        String listData="{\"Result\":\"OK\"}";                              
                        response.getWriter().print(listData);
                    }
                }catch(Exception ex){
                String error="{\"Result\":\"ERROR\",\"Message\":"+ex.getStackTrace().toString()+"}";
                response.getWriter().print(error);
            }               
        }
     }
  }
}

网络.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/web-app_2_0.xsd"   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee    http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
    <welcome-file-list>
        <welcome-file>main.html</welcome-file>
        <welcome-file>main.htm</welcome-file>
        <welcome-file>main.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
    </welcome-file-list>


    <servlet>
        <display-name>CRUDController</display-name>
        <servlet-name>CRUDController</servlet-name>
        <servlet-class>com.assignment.controller.CRUDController</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>CRUDController</servlet-name>
        <url-pattern>/CRUDController</url-pattern>
    </servlet-mapping>
</web-app>  

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/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>
 <groupId>AssignmentDan</groupId>
 <artifactId>AssignmentDan</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 <packaging>war</packaging>
 <build>
   <sourceDirectory>src</sourceDirectory>
   <plugins>
    <plugin>
      <artifactId>maven-compiler-plugin</artifactId>
    <version>3.3</version>
    <configuration>
      <source>1.6</source>
      <target>1.6</target>
    </configuration>
  </plugin>
  <plugin>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.6</version>
    <configuration>
      <warSourceDirectory>WebContent</warSourceDirectory>
      <failOnMissingWebXml>false</failOnMissingWebXml>
    </configuration>
  </plugin>
</plugins>

<dependencies>
     <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
      <version>2.5</version>
       <scope>provided</scope>
     </dependency>
    <dependency>
         <groupId>javax.servlet.jsp</groupId>
       <artifactId>jsp-api</artifactId>
        <version>2.1</version>
       <scope>provided</scope>
     </dependency>
 </dependencies>

最佳答案

ClassNotFoundException: com.assignment.controller.CRUDController

只要看看你的包结构。

您没有名称为 com.assignment.controller 的包。相反,您有一个名为 com.assignmentdan.controller 的包。

让我们浏览一下评论...

i posted pic dan to every assignment so now its com.assignmentdan.controller.CRUDController...it doesnt effect anything tho i still have the same errors

i changed the package name one tiny bit

i changed everywhere it says assignment.. it assignementdan

@Ben 已经告诉你解决办法了,但是你好像没看懂。由于您将包名称更改为 com.assignmentdan,因此您必须手动编辑 web.xml 文件以反射(reflect)该更改。

<servlet-class>com.assignmentdan.controller.CRUDController</servlet-class>

此外,我认为在pom.xml中,groupId应该是com.assignmentdan.controller

关于java.lang.ClassNotFoundException : com. 赋值.controller.CRUDController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36434016/

相关文章:

java - 我的数组程序

java - 在 AEM 中的 CRXDE Lite 中访问/crx/de/replication.jsp 时出现 500 服务器错误

java - 托管多个基于 tomcat 的 Web 应用程序时,最佳做法是什么

apache mod_proxy ProxyPassReverse Location header

JavaServlet : pass a request back to default processing

java - 将 URL 指定的文档上传到字节数组

java - Safari 浏览器中的引荐来源网址 - 不可用?

java - 在 2 个 HashMap 中找到不同的值

java - 当标记为 PM 时无法解析个位数小时 - Java 8

tomcat - 在 ubuntu 上使用 APR 库配置带有 SSL 证书的 tomcat 时出错