我使用dom解析xml文件在servlet中的dopost函数下运行dom解析代码不能正常运行提示找不到类,但是我自己导入了它提示的类还是不能运行,但我新建了一个类在这个类中用主函数运行确实可以运行的。我是javaweb的初学者真的不知道怎么回事,请各位大牛帮忙看看,谢谢!下面是我的源码:
package com.login;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.WebServlet;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.apache.crimson.tree.XmlDocument;
import org.w3c.dom.*;
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
String userid = null;
String password1 = null;
String qq = null;
String password2 = null;
Element eqq = null;
Element epassword = null;
Element epeople = null;
Element eperson = null;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
userid = request.getParameter("userid");
password1 = request.getParameter("password1");
qq = request.getParameter("qq");
password2 = request.getParameter("password2");
request.getRequestDispatcher("/success.jsp").forward(request, response);
try
{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder build = factory.newDocumentBuilder();
Document doc = build.parse("personInformation.xml");
NodeList nl1 =doc.getElementsByTagName("PEOPLE");
epeople = (Element)nl1.item(0);
eperson = doc.createElement("PERSON");
eqq = doc.createElement("USERID");
epassword = doc.createElement("PASSWORD");
eperson.appendChild(doc.createTextNode(userid));
eperson.appendChild(doc.createTextNode(password1));
epeople.appendChild(eperson);
((XmlDocument)doc).write(new FileOutputStream("personInformation.xml"));
System.out.println("success11");
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
运行情况:
信息: Starting ProtocolHandler ["ajp-bio-8009"]
2015-10-3 10:50:50 org.apache.catalina.startup.Catalina start
信息: Server startup in 4341 ms
2015-10-3 10:51:06 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet [com.login.LoginServlet] in context with path [/pro1] threw exception [Servlet execution threw an exception] with root cause
java.lang.ClassNotFoundException: org.apache.crimson.tree.XmlDocument
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1858)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1709)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at com.login.LoginServlet.doPost(LoginServlet.java:51)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:619)
检查下org.apache.crimson.tree.XmlDocument这个类所在的jar没有导入项目中呢?