Servlets Groovy Servlet遇到java.lang.ClassNotFoundException:Groovy.lang.GroovyObject

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

我正在尝试使用Groovy构建一个非常简单的Servlet。因为它只是一个servlet加上几个gsp页面,所以我不想将Grails集成到我的项目中,因为我是新手。当我希望servlet在Tomcat服务器(v7.0)上运行时,我遇到了这样的异常:

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好的,完成了。(我觉得太琐碎了。:-)