0

StackOverFlowのすべてのアクティブな人々、ホーリーの挨拶(インドの祭り)

EclipseJUNOで簡単なJDBCプログラムを作成しました。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;


public class Connect {
static Connection conn;
public static void main(String[] args) {
    try {
        Class.forName("oracle.jdbc.driver.OracleDriver");
        conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","elt","elt");
        System.out.println("Connected");
    } catch (ClassNotFoundException cnf) {
        cnf.printStackTrace();
    } catch (SQLException e) {
        e.printStackTrace();
    }
}
}

このプログラムをEclipseJunoで実行すると、次の出力が得られました。

Connected

しかし、単一のjspページと単一のサーブレットを含むJava EEプロジェクトを作成すると、エラーが発生します。私のJSPページのコードは次のとおりです。

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form method="post" action="LoginAction">
    User ID : <input type="text" name="uname"><br><br>
    Password : <input type="password" name="upass"><br><br>
    <input type="Submit" value="submit">
</form>
</body>
</html>

私のサーブレットのコードは次のとおりです。

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

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

public class LoginAction extends HttpServlet {

static String u_name,u_pass;
static Connection conn;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doPost(request, response);
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    PrintWriter out = response.getWriter();
    out.println("Hello Foo !");
    u_name = request.getParameter("uname");
    u_pass = request.getParameter("upass");
    out.println(u_name);
    out.println(u_pass);

    try {
        Class.forName("oracle.jdbc.driver.OracleDriver");
        conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","elt","elt");
        out.println("Connected");
    } catch (ClassNotFoundException cnf) {
        cnf.printStackTrace();
    } catch (SQLException e) {
        e.printStackTrace();
    }
}
}

Myweb.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_5.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">
 <display-name>eLearning</display-name>
 <welcome-file-list>
 <welcome-file>login.jsp</welcome-file>
 </welcome-file-list>
 <servlet>
<servlet-name>LoginAction</servlet-name>
<servlet-class>LoginAction</servlet-class>
 </servlet>
 <servlet-mapping>
<servlet-name>LoginAction</servlet-name>
<url-pattern>/LoginAction</url-pattern>
 </servlet-mapping>
</web-app>

そして私のエラーは:

java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
at     org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at LoginAction.doPost(LoginAction.java:32)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:931)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

エラーの原因を提案する前に、通常のJavaプログラムが実行されているときにclasses12.jarをすでに追加していることをお伝えしたいと思います。ojdbc14.jarも追加しました。私はオラクル10gを使用しています。

4

3 に答える 3

1

jreの代わりにjdkを使用してみてください。jre6とtomcat6を使用します。JRE7とTOMCAT7は、私の場合はうまく機能していません。だから私はあなたに提案したことをしました。サーブレットでさえ、依存関係を追加して更新を取得します。

于 2013-04-20T17:18:55.943 に答える
0

classes12.jarはJDK1.2/ 1.3用で、ojdbc14.jarはJDK 1.4/1.5用です。

JDK 1.4以降を使用している場合は、クラスパスからclasses12.jarを削除し、ojdbc14.jarのみを使用してください。

于 2013-03-26T06:49:43.617 に答える
0

こんにちは友人最初にjdkをインストールしてから、classes12.jarをライブラリに追加する必要があります

于 2013-03-26T08:00:31.830 に答える