大佬教程收集整理的这篇文章主要介绍了从 Netbeans 12,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用 Netbeans 12 和 tomcat 9 开发 JsP/servlet Web 应用程序。我遇到以下问题:如果我从 Netbeans 运行 Webapp,然后部署 Web 应用程序,.Jsp 页面工作,但 servlets不工作(我收到一个错误,说它们不可用,见下文);如果我使用 tomcat 管理器手动部署 Web 应用程序,它将完美运行。
问题似乎与特定的 Web 应用程序无关。我试图创建一个非常简单的 Web 应用程序,它由一个 .Jsp 页面和一个 servlet 组成,并且我有相同的行为。
这是 .Jsp 页面
<%@page ContentType="text/HTML" pageEnCoding="UTF-8"%>
<!DOCTYPE HTML>
<HTML>
<head>
<Meta http-equiv="Content-Type" content="text/HTML; charset=UTF-8">
<title>JsP Page</title>
</head>
<body>
<h1>Try</h1>
<form action="TestServlet">
<input type="text" name="name"></input>
<input type="submit"></input>
</form>
</body>
</HTML>
这是 Servlet
package servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.servletexception;
import javax.servlet.http.httpServlet;
import javax.servlet.http.httpServletrequest;
import javax.servlet.http.httpServletResponse;
public class TestServlet extends httpServlet {
protected voID processrequest(httpServletrequest request,httpServletResponse responsE)
throws servletexception,IOException {
response.setContentType("text/HTML;charset=UTF-8");
String txt=request.getParameter("name");
try ( PrintWriter out = response.getWriter()) {
out.println("<!DOCTYPE HTML>");
out.println("<HTML>");
out.println("<body>");
out.println("I read "+txt);
out.println("</body>");
out.println("</HTML>");
}
}
@OverrIDe
protected voID doGet(httpServletrequest request,IOException {
processrequest(request,responsE);
}
@OverrIDe
protected voID dopost(httpServletrequest request,responsE);
}
@OverrIDe
public String getServleTinfo() {
return "Short description";
}// </editor-fold>
}
这是错误
javax.servlet.servletexception: Error instantiaTing servlet class [servlet.TestServlet]
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
org.apache.coyote.http11.http11Processor.service(http11Processor.java:374)
org.apache.coyote.AbstractProcessorlight.process(AbstractProcessorlight.java:65)
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597)
org.apache.tomcat.util.net.socketProcessorBase.run(SocketProcessorBase.java:49)
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
org.apache.tomcat.util.threads.TaskThread$WrapPingRunnable.run(TaskThread.java:61)
java.base/java.lang.Thread.run(Thread.java:832)
Root Cause
java.lang.RuntimeException:
servlet.TestServlet.<init>(TestServlet.java:1)
java.base/jdk.internal.reflect.NativeConstructOraccessorImpl.newInstance0(Native Method)
java.base/jdk.internal.reflect.NativeConstructOraccessorImpl.newInstance(NativeConstructOraccessorImpl.java:62)
java.base/jdk.internal.reflect.DelegaTingConstructOraccessorImpl.newInstance(DelegaTingConstructOraccessorImpl.java:45)
java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
org.apache.coyote.http11.http11Processor.service(http11Processor.java:374)
org.apache.coyote.AbstractProcessorlight.process(AbstractProcessorlight.java:65)
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597)
org.apache.tomcat.util.net.socketProcessorBase.run(SocketProcessorBase.java:49)
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
org.apache.tomcat.util.threads.TaskThread$WrapPingRunnable.run(TaskThread.java:61)
java.base/java.lang.Thread.run(Thread.java:832)
据我了解,web应用部署在Netbenas项目目录(netbeansproject/WebApp/build/web),Servlet类在正确位置(netbeansproject/WebApp/build/web/WEB-INF /classes/servlet/TestServlet.class)。出于某种原因,tomcat 似乎在 WEB-INF/classes 目录中找不到类
在此先感谢您的帮助。
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
以上是大佬教程为你收集整理的从 Netbeans 12全部内容,希望文章能够帮你解决从 Netbeans 12所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。