Groovlet 无法在 GWT 项目、容器中工作:在 google 插件中嵌入 Jetty
我正在开发一个使用 GWT-RPC 的 GWT 应用程序。 我刚刚做了一个测试 groovlet 来看看它是否有效,但是遇到了一些问题,
这是我的 groovlet
package groovy.servlet;
print "testing the groovlet";
每个教程都说我们不需要子类化任何东西,只需一个简单的脚本即可充当 servlet。
我的 web.xml 看起来像这样 -
<!-- groovy -->
<servlet>
<servlet-name>testGroovy</servlet-name>
<servlet-class>groovy.servlet.testGroovy</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>testGroovy</servlet-name>
<url-pattern>*.groovy</url-pattern>
</servlet-mapping
当我运行时 ->网络应用程序, 我从码头收到以下错误:
[WARN] failed testGroovy
javax.servlet.UnavailableException: Servlet class groovy.servlet.testGroovy is not a javax.servlet.Servlet
at org.mortbay.jetty.servlet.ServletHolder.checkServletType(ServletHolder.java:377)
at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:234)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:616)
at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1220)
at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:513)
at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
at com.google.gwt.dev.shell.jetty.JettyLauncher$WebAppContextWithReload.doStart(JettyLauncher.java:447)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
at org.mortbay.jetty.handler.RequestLogHandler.doStart(RequestLogHandler.java:115)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
at org.mortbay.jetty.Server.doStart(Server.java:222)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
at com.google.gwt.dev.shell.jetty.JettyLauncher.start(JettyLauncher.java:543)
at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:421)
at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1035)
at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:783)
at com.google.gwt.dev.DevMode.main(DevMode.java:275)
我错过了什么?
I am working on a GWT application which uses GWT-RPC.
I just made a test groovlet to see if it worked, but ran into some problems
here's my groovlet
package groovy.servlet;
print "testing the groovlet";
Every tutorial said we don't need to subclass anything, and just a simple script would act as a servlet.
my web.xml looks like this -
<!-- groovy -->
<servlet>
<servlet-name>testGroovy</servlet-name>
<servlet-class>groovy.servlet.testGroovy</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>testGroovy</servlet-name>
<url-pattern>*.groovy</url-pattern>
</servlet-mapping
When I Run as -> web application,
i get the following error from jetty :
[WARN] failed testGroovy
javax.servlet.UnavailableException: Servlet class groovy.servlet.testGroovy is not a javax.servlet.Servlet
at org.mortbay.jetty.servlet.ServletHolder.checkServletType(ServletHolder.java:377)
at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:234)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:616)
at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1220)
at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:513)
at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
at com.google.gwt.dev.shell.jetty.JettyLauncher$WebAppContextWithReload.doStart(JettyLauncher.java:447)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
at org.mortbay.jetty.handler.RequestLogHandler.doStart(RequestLogHandler.java:115)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
at org.mortbay.jetty.Server.doStart(Server.java:222)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
at com.google.gwt.dev.shell.jetty.JettyLauncher.start(JettyLauncher.java:543)
at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:421)
at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1035)
at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:783)
at com.google.gwt.dev.DevMode.main(DevMode.java:275)
What did I miss ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您正在那里构建一个新类,而不是扩展 HttpServlet 类(或 groovy.servlet.GroovyServlet)。
GroovyServlet 是 servlet,它解释您的 groovy 脚本。
要在 web.xml 中进行设置
,您可以使用 然后在 Web 根目录下名为 somet.groovy 的文件中,您可以编写
对象
request
、response
、session
、params
和其他内容也可供您使用。例如,您可以在 http://groovy.codehaus.org/Groovlet 编写更多信息
You're building a new class there, not extending the HttpServlet class (or the groovy.servlet.GroovyServlet either).
GroovyServlet is the servlet, that then interprets your groovy script.
To set it up in web.xml you use
And then in a file named something.groovy somwhere under your web root you can write
The objects
request
,response
,session
,params
and others are also present at your disposal. So that you for instance can writeMore info at http://groovy.codehaus.org/Groovlet