首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Groovlet在GWT项目中不起作用,容器:在google插件中嵌入Jetty

Groovlet在GWT项目中不起作用,容器:在google插件中嵌入Jetty
EN

Stack Overflow用户
提问于 2010-04-25 15:10:31
回答 1查看 791关注 0票数 0

我正在开发一个使用GWT-RPC的GWT应用程序。我只是做了一个测试groovlet来看看它是否工作,但是遇到了一些问题。

这是我的groovlet

代码语言:javascript
复制
package groovy.servlet;
print "testing the groovlet";

每个教程都说我们不需要子类化任何东西,只需要一个简单的脚本就可以充当servlet。

我的web.xml看起来像这样-

代码语言:javascript
复制
<!--  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

当我作为-> web应用程序运行时,我从jetty得到以下错误:

代码语言:javascript
复制
 [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)

我错过了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-05-27 05:08:46

您在那里构建了一个新类,而不是扩展HttpServlet类(或groovy.servlet.GroovyServlet )。

GroovyServlet是servlet,它解释你的groovy脚本。

要在web.xml中设置它,您可以使用

代码语言:javascript
复制
<servlet>
  <servlet-name>GroovyServlet</servlet-name>
  <servlet-class>groovy.servlet.GroovyServlet</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>GroovyServlet</servlet-name>
  <url-pattern>*.groovy</url-pattern>
</servlet-mapping>

然后在一个名为something.groovy的文件中,您可以在web根目录下编写

代码语言:javascript
复制
out.println 'testing the groovlet'

requestresponsesessionparams和其他对象也可供您随意使用。这样你就可以写下

代码语言:javascript
复制
out.println "Hello ${params['name']}"

欲了解更多信息,请访问http://groovy.codehaus.org/Groovlet

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2707467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档