我正在尝试使用servlet创建一个简单的应用程序,我从用户检索数据,如姓名,姓氏,年龄和电话号码,然后我会在插入后存储在数据库中但是我很难做到这一点,因为当它到来时使用ant编译和部署我没有错误但是在单击表单中的提交按钮后,我收到错误。我不知道问题的原因。我在编译和部署之前在我的lib文件夹中都有我的servlet和数据库jar文件,但是在部署之后只有一个jar文件正确部署。真的很感激。先感谢您。我想也许我的build.xml应该被修改,所以我的jars文件都可以正确部署。我收到以下错误。
我已经包含了我的build.xml文件。
指导系统201103
<property name="name" value="servlet"/>
<property name="project.code" value="servlet"/>
<property name="project.name" value="servlet"/>
<property name="version" value="1.00.00"/>
<!--*** Source properties ***-->
<property name="src" location="src"/>
<property name="src-main" location="${src}/main"/>
<property name="src-main.java" location="${src-main}/java"/>
<property name="src-main.resources" location="${src-main}/resources"/>
<property name="src-main.webapp" location="${src-main}/webapp"/>
<property name="src-test" location="${src}/test"/>
<property name="src-test.java" location="${src-test}/java"/>
<property name="src-test.resources" location="${src-test}/resources"/>
<property name="lib" location="lib"/>
<!--*** Target properties ***-->
<property name="target" location="target"/>
<property name="build" location="${target}/build"/>
<property name="build.classes" location="${build}/classes"/>
<property name="deploy" location="${target}/deploy"/>
<property name="ide" location="${target}/ide"/>
<!--*** Tomcat Properties ***-->
<property name="tomcat-webapps" location="C:\apache-tomcat-7.0.37-windows-x64\apache-tomcat-7.0.37\webapps"/>
<!--*** Deploy properties ***-->
<property name="tomcat.deploy.dir" location="${tomcat-webapps}"/>
<!--*** Classpath settings ***-->
<path id="classpath">
<fileset dir="${lib}">
<include name="**/*.jar"/>
</fileset>
<pathelement path="${build}/classes"/>
</path>
<!--***************************************************************************************************************
* Target: Help (Default)
***************************************************************************************************************-->
<target name="help" description="Gives help on all tasks in this build file">
<echo>Run "ant -projecthelp" or "ant -p" for a list of valid targets for this ant buildfile."</echo>
</target>
<!--***************************************************************************************************************
* Target: createTempDirs
***************************************************************************************************************-->
<target name="init:create-temp-dirs" description="Creates all relevant temporary directoriees. Typically only used the first time these directories need to be created.">
<mkdir dir="${target}"/>
<mkdir dir="${build}"/>
<mkdir dir="${build.classes}"/>
<mkdir dir="${deploy}"/>
<mkdir dir="${ide}"/>
<mkdir dir="${ide}/classes"/>
</target>
<!--***************************************************************************************************************
* Target: Clean
***************************************************************************************************************-->
<target name="clean" description="Deletes all relevant files and directories eg. build classes, build directories.">
<!-- Kill the build directory -->
<delete dir="${build}" />
<!-- Delete backup files, if necessary -->
<!-- Delete all temporary files, if necessary -->
</target>
<!--***************************************************************************************************************
* Target: prepare
***************************************************************************************************************-->
<target name="prepare" depends="init:create-temp-dirs" description="Creates all relevant dirs, expand jars, etc.">
<mkdir dir="${build}"/>
<mkdir dir="${build.classes}"/>
</target>
<!--***************************************************************************************************************
* Target: java
***************************************************************************************************************-->
<target name="_compile" depends="prepare" >
<javac srcdir="${src-main.java}" destdir="${build.classes}">
<classpath refid="classpath"/>
<include name="**/*.java"/>
</javac>
<!-- copy all relevant confirguration files -->
<copy todir="${build.classes}/resources">
<fileset dir="${src-main}/resources"/>
</copy>
<!-- copy all file in root java directory. -->
<copy todir="${build.classes}">
<fileset dir="${src-main.java}" includes="*.*"/>
</copy>
</target>
<target name="compile" depends="clean, _compile"
description="Does a clean Java compile ie. all previous built classes are first deleted and then a full recompile takes place." />
<target name="compile:fast" depends="_compile"
description="Does a Java compile only on changed files. Previously compiled files are left untouched." />
<!--***************************************************************************************************************
* Target: war related
***************************************************************************************************************-->
<property name="deploy.warfile.name" value="${deploy}/${project.name}.war"/>
<!-- Do a WAR build from the given build directory. No Hibernate build is done. -->
<target name="war:build" description="Creates the War file for this project.">
<!--<delete file="${deploy.warfile.name}" />-->
<war destfile="${deploy.warfile.name}" webxml="${src-main.webapp}/WEB-INF/web.xml">
<classes dir="${build.classes}" />
<webinf dir="${src-main.webapp}/WEB-INF" />
<fileset dir="${src-main.webapp}" excludes="WEB-INF/**/*.*" />
<lib dir="${lib}" includes="**/*.jar" excludes="servlet*.jar, jsp*.jar, javax*.jar" />
</war>
</target>
<!-- Do a WAR Build and Deploy To Tomcat -->
<target name="war:deploy" depends="war:build" description="Builds the war file (war:build) and deploys it to Tomcat.">
<copy file="${deploy.warfile.name}" todir="${tomcat.deploy.dir}" />
</target>
答案 0 :(得分:1)
请分享您的 build.xml 。我认为你创建war文件的任务不是在战争中复制jar文件。
<target name="war" depends="build" description="War up the compiled classes into ${package.file.war}">
<war destfile="${package.file.war}">
<fileset dir="build" includes="**" excludes="**/*.java"/>
</war>
</target>
[编辑]您的构建文件中没有问题。确保您的源代码包含此声明
Class.forName("com.mysql.jdbc.Driver");
答案 1 :(得分:0)
您的WEB-INF/lib
文件夹
确保您有以下事项
1)在WEB-INF/lib
文件夹中复制粘贴您使用的所有jar依赖项
2)在WEB-INF/classes
文件夹中你应该有你的.class文件
3)将您的index.html
或index.jsp文件放在Web应用程序的Root文件夹中
4)并将您的web.xml放在WEB-INF
文件夹
您可以在MySQL\MySQL Tools for 5.0\java\lib
文件夹