我写了一个Java Servlet程序但是当我运行它时,它显示了Exception
java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
Run Code Online (Sandbox Code Playgroud)
我的代码是
package skypark;
import java.io.*;
import javax.servlet.*;
import java.text.*;
import javax.servlet.http.*;
import java.sql.*;
import java.sql.Date;
public class Registration extends HttpServlet {
private static final long serialVersionUID = 1L;
public static Connection prepareConnection() throws ClassNotFoundException, SQLException {
String dcn = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@JamesPJ-PC:1521:skypark";
String usname = "system";
String pass = "tiger";
Class.forName(dcn);
return DriverManager.getConnection(url, usname, pass);
}
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();
try {
String …Run Code Online (Sandbox Code Playgroud) 在Tomcat中,我想在Web应用程序中使用jar.jar文件将存在于Tomcat目录之外.
要在jarcat类路径中包含jar文件,我修改了TomcatHome/conf/catalina.properties以包含我的jar文件的绝对路径,如:
shared.loader=D:\jaa\MyJarFile.jar
Run Code Online (Sandbox Code Playgroud)
根据链接中的建议,
http://www.mulesoft.com/tomcat-classpath
Run Code Online (Sandbox Code Playgroud)
但它抛出了错误,
java.lang.NoClassDefFoundError
Run Code Online (Sandbox Code Playgroud)
我也尝试过,
shared.loader=D:\jaa\*.jar
shared.loader=file:\\D:\jaa\MyJarFile.jar
Run Code Online (Sandbox Code Playgroud)
他们似乎都没有工作:(
如果我尝试将jar放在tomcat/lib中,它似乎工作.但我不允许这样做.
请帮助我解决这个问题,因为我已经在下周实施了..
我正在尝试将基于JSF的应用程序部署到Tomcat 6.我的构建系统的设置方式,WAR本身没有任何库,因为该服务器共提供43个应用程序.而是将库复制到共享库文件夹中并在应用程序之间共享.部署时,我收到此错误
SEVERE: Error deploying configuration descriptor SSOAdmin.xml
java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/faces/webapp/FacesServlet
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1667)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:108)
at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:58)
at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:297)
at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:1078)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:261)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4611)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:675)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:601)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1315) …Run Code Online (Sandbox Code Playgroud) 以下代码在线上失败:
Class.forName("oracle.jdbc.driver.OracleDriver");
Run Code Online (Sandbox Code Playgroud)
有错误:
java.lang.ClassNotFoundException:oracle.jdbc.driver.OracleDriver
两个println印刷品:
Wed_Jun_22_11:18:51_PDT_2005
false
Run Code Online (Sandbox Code Playgroud)
这让我觉得这个类存在并且可以找到.此完全相同的类也适用于非servlet应用程序.
我已多次重启所有内容并多次重新生成应用程序/ servlet.所有值都经过硬编码,使其简单易行.
private static Connection getDBConnection() throws Exception {
System.out.println(oracle.jdbc.driver.OracleDriver.BUILD_DATE);
System.out.println(Class.class.desiredAssertionStatus());
//load the driver
Class.forName("oracle.jdbc.driver.OracleDriver");
return DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "SYSTEM", "pass");
}
Run Code Online (Sandbox Code Playgroud)
失败的完整servlet:
package servletClass_3;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
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 OneMoreBookStore
*/
@WebServlet("/OneMoreBookStore")
public class OneMoreBookStore extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
private static Connection getDBConnection() throws …Run Code Online (Sandbox Code Playgroud) 我是Eclipse,Java和Linux的新手.我搜索这个问题,但我没有回答.我想编写一个操作HBase表的程序.所以我有一些与HBase相关的Jar文件.在普通的Java应用程序中,我通过以下指令添加Jar文件
构建路径 - >配置构建路径 - >添加外部JAR
所以在Dynamic Web Project中声音就像不同.经过一些搜索后,我了解Jar文件必须添加到WEB-INF/lib或%TOMCAT_HOME%/ lib中.所以我从%TOMCAT_HOME%/ lib得到了答案,但我真的不知道如何在WEB-INF/lib中添加jar文件.我复制文件夹中的所有jar文件,但它不起作用.
请详细帮我.
我已经看过很多教程和应用程序将他们的jar放在构建路径中,而其他人将它放在他们的web-inf/lib文件夹中,是否有任何显着差异?两者的优点和缺点是什么?我将一个jar放在libs文件夹中并将jar放在构建路径中的指示器是什么?
我正在向基于 Eclipse IDE 中的 Java Servlet 的 Web 服务器应用程序添加一个外部 jar 文件。但是,当我尝试添加该 jar 文件时,出现错误,因为"An internal error occurred during updating tag library index . Path Must Include project and resource name:/<jar file name>".请让我知道应用程序询问的路径,或者有任何特定目录我必须放置该 jar 文件或任何我必须更新 jar 文件位置的文件。谢谢
我理解与此相关的问题已得到解答,但我没有遇到在我的搜索中回答的这个特定问题.
我一直在尝试将我的导入JAR文件包含在我的构建(如下所示)的spring应用程序中,但我所做的任何事情都不是解决方案.我在使用Tomcat和Ant在Eclipse中构建时收到'package not exists'错误,因为它无法在web-inf/lib文件夹中找到JAR文件(显然).Eclipse不允许我将文件从Referenced Library实用程序库中删除并拖动到任何所需的文件夹.当我尝试配置构建路径时,我添加了外部JAR,文件所在的目录路径显示在库选项卡中的JAR旁边.发布/导出依赖项设置为WEB-INF/lib文件夹我读过将所有JAR文件直接添加到Tomcat/lib文件夹(不应该这样做)可以解决问题,但对我来说情况并非如此.我为JAR设置了/ WEB-INF/lib的部署程序集路径,没有运气.我试过重启Eclipse,没有运气.我创建了一个新的动态Web项目,没有运气.我解压缩了war文件,没有找到JAR文件,这是预期的.我相信我的环境变量是正确添加的
我使用Eclipse和Spring应用程序已经好几年了,所以我希望我错过了一个重要的步骤.
注意:这是一个Spring教程,我一直在努力让我重新站起来.Eclipse版本4.3.0 Tomcat版本6 Ant版本1.8.4 - 作为Eclipse下载的插件包含在内
任何帮助将不胜感激,因为我会喜欢再次使用Web应用程序.
<project name="springapp1" basedir="." default="usage">
<property file="build.properties"/>
<property name="lib.dir" value="C:/Eclipse/Tomcat/lib"/>
<property name="webapps.dir" value="C:/Eclipse/Tomcat/webapps"/>
<property name="src.dir" value="src"/>
<property name="web.dir" value="WebContent"/>
<property name="build.dir" value="${web.dir}/WEB-INF/classes"/>
<property name="name" value="springapp1"/>
<path id="master-classpath">
<fileset dir="${web.dir}/WEB-INF/lib">
<include name="*.jar"/>
</fileset>
<!-- We need the servlet API classes: -->
<!-- * for Tomcat 5/6 use servlet-api.jar -->
<!-- * for other app servers - check the docs -->
<!--<fileset dir="${appserver.lib}">-->
<fileset dir="${lib.dir}">
<include name="servlet*.jar"/>
</fileset>
<pathelement path="${build.dir}"/> …Run Code Online (Sandbox Code Playgroud)