0

私はGWT-RPCを使用するGWTアプリケーションに取り組んでいます。動作するかどうかを確認するためにテストグルーブレットを作成しましたが、いくつかの問題が発生しました

これが私のグルーヴレットです

package groovy.servlet;
print "testing the groovlet";

すべてのチュートリアルでは、何もサブクラス化する必要はなく、単純なスクリプトだけがサーブレットとして機能すると述べています。

私の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

として実行->Webアプリケーションを実行すると、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)

私は何を取りこぼしたか ?

4

1 に答える 1

0

HttpServletクラス(またはgroovy.servlet.GroovyServlet)を拡張するのではなく、そこで新しいクラスを構築しています。

GroovyServletサーブレットであり、Groovyスクリプトを解釈します。

web.xmlで設定するには、次を使用します

<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という名前のファイルであなたは書くことができます

out.println 'testing the groovlet'

オブジェクト、、、、requestおよびその他も自由に使用できますresponse。たとえばあなたが書くことができるようにsessionparams

out.println "Hello ${params['name']}"

詳細については、 http: //groovy.codehaus.org/Groovletをご覧ください。

于 2010-05-26T21:08:46.073 に答える