Quelles sont les causes "Java Runtime Environment (JRE) version 1.7 n'est pas pris en charge par ce pilote..." à l'exécution dans mon servlet? [dupliquer]
Cette question a déjà une réponse ici:
- HTTP Status 500-Java Runtime Environment (JRE) version 1.7 n'est pas pris en charge par ce pilote 2 réponses
Je veux pouvoir cliquer sur un bouton HTML et le faire appeler une méthode à l'intérieur de Java. Est-il plus d'une façon d'accomplir cette tâche.
Je voudrais aussi voir où le les erreurs sont à venir à partir de cet exemple. Il ne compile pas.
Code Java:
import java.io.IOException;
@WebServlet("/myservlet")
public class MyServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
MyClass myClass = new MyClass();
if (request.getParameter("button1") != null) {
myClass.function1();
} else if (request.getParameter("button2") != null) {
myClass.function2();
} else if (request.getParameter("button3") != null) {
myClass.function3();
}
request.getRequestDispatcher("/WEB-INF/some-result.jsp").forward(request, response);
}
}
class MyClass {
void function1() {
System.out.println("Button 1");
}
void function2() {
System.out.println("Button 2");
}
void function3() {
System.out.println("Button 3");
}
}
Code HTML:
<html>
<head>
<title>Test Button</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/myservlet" method="post">
<input type="submit" name="button1" value="Button 1" />
<input type="submit" name="button2" value="Button 2" />
<input type="submit" name="button3" value="Button 3" />
</form>
</body>
</html>
Erreur:
May 30, 2014 1:16:54 PM com.microsoft.sqlserver.jdbc.SQLServerConnection <init>
SEVERE: Java Runtime Environment (JRE) version 1.7 is not supported by this driver. Use the sqljdbc4.jar class library, which provides support for JDBC 4.0.
Exception in thread "main" java.lang.UnsupportedOperationException: Java Runtime Environment (JRE) version 1.7 is not supported by this driver. Use the sqljdbc4.jar class library, which provides support for JDBC 4.0.
at com.microsoft.sqlserver.jdbc.SQLServerConnection.<init>(SQLServerConnection.java:304)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1011)
at java.sql.DriverManager.getConnection(DriverManager.java:571)
at java.sql.DriverManager.getConnection(DriverManager.java:215)
at testpak.DbTest.testQuery(DbTest.java:19)
at testpak.DbTest.main(DbTest.java:30)
Que sqljdbc4jar. est dans ma bibliothèque référencée. Est-il un autre endroit qu'il doit être?
1 answers
Selon votre propre capture d'écran, vous référencez à la fois sqljdbc.jar
et sqljdbc4.jar
. Vous ne devez en référencer qu'un (dans ce cas: sqljdbc4.jar
).
Ces fichiers jar contiennent les mêmes classes de pilotes (bien que l'implémentation exacte puisse être différente). Le classloader charge les classes du premier jar sur le chemin de classe et ignore celles du second car il a déjà chargé une classe du même nom.