注意:在上图中,它表示包名称是 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/