0
我想用Groovy構建一個非常簡單的Servlet。由於它只是一個單獨的servlet加上幾個gsp頁面,我不想將Grails集成到我的項目中,因爲我對它很陌生。當我想Tomcat服務器(V7.0)在servlet的來看,我遇到過這樣的例外:Groovy Servlet遇到java.lang.ClassNotFoundException:groovy.lang.GroovyObject
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)...
看看這些線Got java.lang.NoClassDefFoundError: groovy/lang/GroovyObject看來servlet.groovy編譯罰款,但運行時ENV不滿足。 我的問題是,如何在沒有Grails的情況下滿足運行時環境(如果可能)?我的buildpath中已經有了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);
}
}
你寫了_我的buildpath_中已經有groovy-all-2.3.7.jar,但是你在webapp的WEB-INF/lib或者Tomcat的lib文件夾中有嗎? –
糟糕,它並未包含在Tomcat的lib文件夾中。現在它完美地工作。謝謝!我希望我在一小時前知道它! – OrlandoL
@JozefChocholacek你應該將其作爲回答 – Will