首先,我构建了路径(在 Eclipse 中)。当我将 java 类作为 java 应用程序运行时,它工作正常,并且我可以访问数据所在的服务器。 但是当我想在服务器上运行它时,它总是抛出“java.lang.ClassNotFoundException:com.mysql.jdbc.Driver”
这是我的第一个问题, 当我将正常工作的 java 应用程序(没有类,只是下面的代码)复制到 servlet 中并且只想查看将 java 类作为应用程序运行时得到的输出时,会发生另一个情况。
我是java新手,我必须为大学做这件事(它给了我一个工作“Testklasse”作为测试类来测试数据库连接是否正常工作,整个CMS包都是他们编写的。)
请帮忙。
Java 类:
package myCMS;
/**
* Testprogramm für das myCMS-Model.
* Wird nicht benötigt, sondern dient lediglich zum Ausprobieren, ob die Verbindung zur Datenbank funktioniert.
*/
public class Testklasse {
/**
* Einstiegsmethode für das Testprogramm
* @param args Array der Kommandozeilenparameter
*/
public static void main(String[] args) {
// Model-Objekt erstellen
WebUserAgentModel repModel = new WebUserAgentModel();
System.out.println("*** Testprogramm ***\n");
System.out.println("Es wurden die folgenden Nachrichtenkategorien gefunden:");
// Alle Nachrichten-Kategorien abrufen (z.B. für die Navigationsleiste)
List<RepositoryCategory> catList = repModel.getCategoryList();
// Alle Elemente der Kategorien-Liste ausgeben
for (RepositoryCategory category : catList) { // entspricht "foreach"
System.out.println ("[" + category.getId() + "] " + category.getTitel());
}
System.out.println("");
System.out.println("Die folgenden Artikel befinden sich in der Datenbank:");
// Alle Nachrichtenmeldungen/Dokumente abrufen (aus allen Kategorien)
repModel.selectDocuments();
//repModel.selectDocumentsByQuery("HERSTELLER");
// Dokumentenliste abrufen
List<RepositoryDocument> docList = repModel.getDocumentList();
// Alle Meldungen auszugsweise ausgeben
int count = 0;
for (RepositoryDocument article : docList) {
System.out.printf( "[%2d] %-10.10s %-12.12s %-60.60s%n", article.getId(), article.getDatum(), article.getUntertitel(), article.getText() );
count++;
}
// Zählergebnis ausgeben
System.out.println("\n" + count + " Einträge gefunden.\n\n");
// Rubrikübersicht: (NEU)
System.out.println("Übersicht über die Artikel in den Rubriken:");
for (RepositoryCategory category : catList) {
System.out.println("\n++ " + category.getTitel() + " ++");
repModel.selectTeaser(category.getId());
docList = repModel.getTeaserList();
for (RepositoryDocument teaser : docList) {
System.out.printf( "[%2d] %-10.10s ", teaser.getId(), teaser.getDatum());
System.out.println(teaser.getText());
}
}
// Datenbankverbindung schließen
repModel.closeDatabase();
}
}
Servlet:
package myCMS;
import java.io.IOException;
import java.util.List;
import javax.servlet.RequestDispatcher;
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 MobileNewsServlet
*/
@WebServlet("/MobileNewsServlet")
public class MobileNewsServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public MobileNewsServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.setContentType("text/html");
WebUserAgentModel repModel = new WebUserAgentModel();
System.out.println("*** Testprogramm ***\n");
System.out.println("Es wurden die folgenden Nachrichtenkategorien gefunden:");
// Alle Nachrichten-Kategorien abrufen (z.B. für die Navigationsleiste)
List<RepositoryCategory> catList = repModel.getCategoryList();
// Alle Elemente der Kategorien-Liste ausgeben
for (RepositoryCategory category : catList) { // entspricht "foreach"
System.out.println ("[" + category.getId() + "] " + category.getTitel());
}
System.out.println("");
System.out.println("Die folgenden Artikel befinden sich in der Datenbank:");
// Alle Nachrichtenmeldungen/Dokumente abrufen (aus allen Kategorien)
repModel.selectDocuments();
//repModel.selectDocumentsByQuery("HERSTELLER");
// Dokumentenliste abrufen
List<RepositoryDocument> docList = repModel.getDocumentList();
// Alle Meldungen auszugsweise ausgeben
int count = 0;
for (RepositoryDocument article : docList) {
System.out.printf( "[%2d] %-10.10s %-12.12s %-60.60s%n", article.getId(), article.getDatum(), article.getUntertitel(), article.getText() );
count++;
}
// Zählergebnis ausgeben
System.out.println("\n" + count + " Einträge gefunden.\n\n");
// Rubrikübersicht: (NEU)
System.out.println("Übersicht über die Artikel in den Rubriken:");
for (RepositoryCategory category : catList) {
System.out.println("\n++ " + category.getTitel() + " ++");
repModel.selectTeaser(category.getId());
docList = repModel.getTeaserList();
for (RepositoryDocument teaser : docList) {
System.out.printf( "[%2d] %-10.10s ", teaser.getId(), teaser.getDatum());
System.out.println(teaser.getText());
}
}
// Datenbankverbindung schließen
repModel.closeDatabase();
RequestDispatcher rd = request.getRequestDispatcher("/mobilenews.jsp");
rd.forward(request,response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
}
最佳答案
Put **mysql-connector-java-version-bin** jar in **WEB-INF/lib** folder
关于java - 尝试将工作的现有 java 类复制到 servlet 中,com.mysql.jdbc.Driver 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27076705/