0

我在 roo shell 中使用 GWT 创建了一个 roo 项目(在 IDE 中创建新项目之后):

persistence setup --database H2_IN_MEMORY --provider HIBERNATE
database properties set --key database.url --value jdbc:h2:tcp://localhost/~/roo_crm
database reverse engineer --package ~.domain --schema PUBLIC
web gwt setup

然后我通过让 eclipse 进行快速修复并将“忽略”更改为“执行”来修复 pom 错误(这是一个众所周知的问题,这是可能的修复之一)。

我用应用程序启动 tc 服务器。

我选择App.gwt.xml,右键单击,作为 Web 应用程序运行,我收到此错误:

在端口 8888 上启动 Jetty [警告] 异常 java.lang.ClassNotFoundException: com.crmco.crm.server.CustomRequestFactoryServlet at java.lang.ClassLoader.findClass(ClassLoader.java:358) at java.lang.ClassLoader.loadClass(ClassLoader. java:306) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:247) 在 org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:352) 在 org.mortbay.jetty.webapp.WebAppClassLoader.loadClass (WebAppClassLoader.java:337) 在 org.mortbay.util.Loader.loadClass(Loader.java:91) 在 org.mortbay.util.Loader.loadClass(Loader.java:71) 在 org.mortbay.jetty.servlet。 Holder.doStart(Holder.java:73) 在 org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:233) 在 org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)在 org.mortbay.jetty.ServletHandler.initialize(ServletHandler.java:616) 在 org.mortbay.jetty.servlet.Context.startContext(Context.java:140) 在 org.mortbay.jetty.webapp.WebAppContext .startContext(WebAppContext.java:1220) 在 org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:513) 在 org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448) 在 com。 org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) 在 org.mortbay.jetty.handler.HandlerWrapper 的 google.gwt.dev.shell.jetty.JettyLauncher$WebAppContextWithReload.doStart(JettyLauncher.java:468)。 doStart(HandlerWrapper.java:130) 在 org.mortbay.jetty.handler.RequestLogHandler.doStart(RequestLogHandler.java:115) 在 org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) 在 org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) 在 org.mortbay.jetty.Server.doStart(Server.java:222) 在 org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle .java:39) 在 com.google.gwt.dev.shell.jetty.JettyLauncher.start(JettyLauncher.java:672) 在 com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:509) 在 com。 com.google.gwt.dev.DevModeBase.run(DevModeBase.java:836) 在 com.google.gwt.dev.DevMode.main(DevMode. java:311) [WARN] requestFactory javax.servlet.UnavailableException: org.mortbay.jetty.servlet.Holder.doStart(Holder.java:79) at org.mortbay.jetty 的 com.crmco.crm.server.CustomRequestFactoryServlet 失败。 servlet.ServletHolder.doStart(ServletHolder.java:233) 在 org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) 在 org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:616) 在 org.mortbay.jetty.servlet.Context.startContext(Context.java: 140) 在 org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1220) 在 org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:513) 在 org.mortbay.jetty.webapp.WebAppContext .doStart(WebAppContext.java:448) at com.google.gwt.dev.shell.jetty.JettyLauncher$WebAppContextWithReload.doStart(JettyLauncher.java:468) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39 ) 在 org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) 在 org.mortbay.jetty.handler.RequestLogHandler.doStart(RequestLogHandler.java:115) 在 org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) 在 org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) 在 org.mortbay.jetty.Server.doStart(Server.java:222)在 org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) 在 com.google.gwt.dev.shell.jetty.JettyLauncher.start(JettyLauncher.java:672) 在 com.google.gwt.dev.DevMode .doStartUpServer(DevMode.java:509) 在 com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1093) 在 com.google.gwt.dev.DevModeBase.run(DevModeBase.java:836) 在 com。 google.gwt.dev.DevMode.main(DevMode.java:311) [WARN] 上下文 com.google.gwt.dev.shell.jetty.JettyLauncher$WebAppContextWithReload@d018d8{/,C:\Users\XXX\ 启动失败Documents\workspace-sts\crm\target\crm-0.1.0.BUILD-SNAPSHOT} javax.servlet。UnavailableException: com.crmco.crm.server.CustomRequestFactoryServlet at org.mortbay.jetty.servlet.Holder.doStart(Holder.java:79) at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:233) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) 在 org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:616) 在 org.mortbay.jetty.servlet.Context.startContext(Context. java:140) 在 org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1220) 在 org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:513) 在 org.mortbay.jetty.webapp .WebAppContext.doStart(WebAppContext.java:448) 在 com.google.gwt.dev.shell.jetty.JettyLauncher$WebAppContextWithReload.doStart(JettyLauncher.java:468) 在 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) 在 org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) 在 org.mortbay.jetty.Server.doStart(Server.java:222 ) 在 com.google.gwt.dev.shell.jetty.JettyLauncher.start(JettyLauncher.java:672) 在 com.google.gwt.dev 的 org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)。 DevMode.doStartUpServer(DevMode.java:509) 在 com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1093) 在 com.google.gwt.dev.DevModeBase.run(DevModeBase.java:836) 在 com .google.gwt.dev.DevMode。main(DevMode.java:311) [WARN] 没有提供启动 URL,也没有找到合理的 URL——使用 -startupUrl

我一直在寻找解决此问题的方法,但没有运气。

4

2 回答 2

0

我终于能够让它工作了。在最新版本的 Roo 中,我需要一个在我的教程中没有出现的附加命令:

web gwt all --proxyPackage ~.client.proxy --requestPackage ~.client.request

在浏览器中打开应用程序时我遇到了一些错误,但这可能与我之前的错误无关,至少应用程序似乎显示在浏览器中。

于 2013-05-28T00:38:10.483 回答
0

我在使用 eclipse 时遇到了类似的问题。我还没有确定它何时发生,但我认为该gwt-unitCache目录被 eclipse 弄乱了。

gwt-unitCache在重新启动之前手动删除目录似乎可行(大多数情况下)。

于 2013-05-29T00:04:28.893 回答