Servlets Groovy Servlet遇到java.lang.ClassNotFoundException:Groovy.lang.GroovyObject
我正在尝试使用Groovy构建一个非常简单的Servlet。因为它只是一个servlet加上几个gsp页面,所以我不想将Grails集成到我的项目中,因为我是新手。当我希望servlet在Tomcat服务器(v7.0)上运行时,我遇到了这样的异常:Servlets Groovy Servlet遇到java.lang.ClassNotFoundException:Groovy.lang.GroovyObject,servlets,groovy,Servlets,Groovy,我正在尝试使用Groovy构建一个非常简单的Servlet。因为它只是一个servlet加上几个gsp页面,所以我不想将Grails集成到我的项目中,因为我是新手。当我希望servlet在Tomcat服务器(v7.0)上运行时,我遇到了这样的异常: java.lang.ClassNotFoundException: groovy.lang.GroovyObject org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClass
java.lang.ClassNotFoundException: groovy.lang.GroovyObject
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
java.lang.ClassLoader.defineClass1(Native Method)
java.lang.ClassLoader.defineClass(ClassLoader.java:800)
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2904)
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1173)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1681)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)...
看看这个线程,servlet.groovy似乎编译得很好,但不符合运行时环境。
我的问题是,如果可能的话,在没有Grails的情况下如何满足运行时环境?我的构建路径中已经有groovy-all-2.3.7.jar。或者可能是版本问题造成的
servlet非常简单,因为我在一开始就遇到了这个问题
import groovy.servlet.GroovyServlet
class Dispatcher extends GroovyServlet {
private static final long serialVersionUID = 1L;
public Dispatcher(){
super();
}
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
println request;
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
println(request.getParameter("option"));
request.setAttribute("option", request.getParameter("option"));
Map<String,Object> result=new HashMap<>();
request.setAttribute("result", result);
println request;
// Forward to GSP file to display message
RequestDispatcher dispatcher = request
.getRequestDispatcher("/result.gsp");
dispatcher.forward(request, response);
}
}
导入groovy.servlet.GroovyServlet
类调度器扩展了GroovyServlet{
私有静态最终长serialVersionUID=1L;
公共调度程序(){
超级();
}
受保护的无效数据集(HttpServletRequest请求,
HttpServletResponse响应)引发ServletException,IOException{
println请求;
}
受保护的void doPost(HttpServletRequest请求,
HttpServletResponse响应)引发ServletException,IOException{
println(request.getParameter(“选项”);
request.setAttribute(“option”,request.getParameter(“option”);
映射结果=新的HashMap();
setAttribute(“结果”,result);
println请求;
//转发到GSP文件以显示消息
RequestDispatcher=请求
.getRequestDispatcher(“/result.gsp”);
转发(请求、响应);
}
}
在构建路径中使用groovy-all-2.3.7.jar
是不够的,它必须在webapp的WEB-INF/lib
文件夹中,或者也在Tomcat的lib
文件夹中。你写的是u我的构建路径中已经有groovy-all-2.3.7.jar,但是你的webapp的WEB-INF/lib
文件夹中有它吗,或者在Tomcat的lib
文件夹中?哦,它不包括在Tomcat的lib文件夹中。现在它工作得很好。谢谢我希望我一小时前就知道了@JozefChocholacek你应该把它作为answer@WillP好的,完成了。(我觉得太琐碎了。:-)