2012-09-19 110 views
2

我在Spring Roo和Tomcat中遇到了一个令人讨厌的问题。 继Spring Roo的比萨饼店教程中,我已发出以下命令:Spring Roo Tomcat问题

project com.springsource.pizzashop 

// Setup JPA persistence using EclipseLink and H2 
jpa setup --provider ECLIPSELINK --database H2_IN_MEMORY 

// Create domain entities 
entity jpa --class ~.domain.Base --testAutomatically 
field string --fieldName name --sizeMin 2 --notNull 

entity jpa --class ~.domain.Topping --testAutomatically 
field string --fieldName name --sizeMin 2 --notNull 

entity jpa --class ~.domain.Pizza --testAutomatically 
field string --fieldName name --notNull --sizeMin 2 
field number --fieldName price --type java.math.BigDecimal 
field set --fieldName toppings --type ~.domain.Topping 
field reference --fieldName base --type ~.domain.Base 

entity jpa --class ~.domain.PizzaOrder --testAutomatically --identifierType ~.domain.PizzaOrderPk 
field string --fieldName name --notNull --sizeMin 2 
field string --fieldName address --sizeMax 30 
field number --fieldName total --type java.math.BigDecimal 
field date --fieldName deliveryDate --type java.util.Date 
field set --fieldName pizzas --type ~.domain.Pizza 

field string --fieldName shopCountry --class ~.domain.PizzaOrderPk 
field string --fieldName shopCity 
field string --fieldName shopName 

// Offer JSON remoting for all domain types trough Spring MVC 
json all --deepSerialize 
web mvc json setup 
web mvc json all 

web mvc setup 
web mvc all --package ~.web 

然后在命令行我打电话:

mvn tomcat:run 

当我在比萨实体添加一个新的领域,我得到的错误:

SEVERE: Servlet.service() for servlet [pizza] in context with path [/pizza] threw exception [Request processing failed; nested exception is org.apache.tiles.impl.CannotRenderException: ServletException including path '/WEB-INF/layouts/default.jspx'.] with root cause 
javax.servlet.jsp.JspTagException: No message found under code 'label_com_springsource_pizzashop_domain_pizza_newfield' for locale 'el_GR'. 
    at org.springframework.web.servlet.tags.MessageTag.doStartTagInternal(MessageTag.java:184) 
    at org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:79) 
    at org.apache.jsp.tag.web.form.fields.input_tagx._jspx_meth_spring_005fmessage_005f0(input_tagx.java:661) 
    at org.apache.jsp.tag.web.form.fields.input_tagx._jspx_meth_c_005fif_005f3(input_tagx.java:584) 
    at org.apache.jsp.tag.web.form.fields.input_tagx.doTag(input_tagx.java:338) 
    at org.apache.jsp.WEB_002dINF.views.pizzas.create_jspx._jspx_meth_field_005finput_005f6(create_jspx.java:329) 
    at org.apache.jsp.WEB_002dINF.views.pizzas.create_jspx.access(create_jspx.java:310) 
    at org.apache.jsp.WEB_002dINF.views.pizzas.create_jspx$Helper.invoke0(create_jspx.java:385) 
    at org.apache.jsp.WEB_002dINF.views.pizzas.create_jspx$Helper.invoke(create_jspx.java:402) 
    at org.apache.jsp.tag.web.form.create_tagx$Helper.invoke0(create_tagx.java:697) 
    at org.apache.jsp.tag.web.form.create_tagx$Helper.invoke(create_tagx.java:738) 
    at org.apache.jsp.tag.web.util.panel_tagx._jspx_meth_c_005fif_005f0(panel_tagx.java:193) 
    at org.apache.jsp.tag.web.util.panel_tagx.doTag(panel_tagx.java:139) 
    at org.apache.jsp.tag.web.form.create_tagx.doTag(create_tagx.java:242) 
    at org.apache.jsp.WEB_002dINF.views.pizzas.create_jspx._jspx_meth_form_005fcreate_005f0(create_jspx.java:109) 
    at org.apache.jsp.WEB_002dINF.views.pizzas.create_jspx._jspService(create_jspx.java:73) 
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389) 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684) 
    at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:593) 
    at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:530) 
    at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:927) 
    at org.apache.jasper.runtime.PageContextImpl.doInclude(PageContextImpl.java:684) 
    at org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:678) 
    at org.apache.tiles.jsp.context.JspTilesRequestContext.include(JspTilesRequestContext.java:103) 
    at org.apache.tiles.jsp.context.JspTilesRequestContext.dispatch(JspTilesRequestContext.java:96) 
    at org.apache.tiles.renderer.impl.TemplateAttributeRenderer.write(TemplateAttributeRenderer.java:44) 
    at org.apache.tiles.renderer.impl.AbstractBaseAttributeRenderer.render(AbstractBaseAttributeRenderer.java:106) 
    at org.apache.tiles.renderer.impl.ChainedDelegateAttributeRenderer.write(ChainedDelegateAttributeRenderer.java:76) 
    at org.apache.tiles.renderer.impl.AbstractBaseAttributeRenderer.render(AbstractBaseAttributeRenderer.java:106) 
    at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:670) 
    at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:336) 
    at org.apache.tiles.template.InsertAttributeModel.renderAttribute(InsertAttributeModel.java:210) 
    at org.apache.tiles.template.InsertAttributeModel.end(InsertAttributeModel.java:126) 
    at org.apache.tiles.jsp.taglib.InsertAttributeTag.doTag(InsertAttributeTag.java:311) 
    at org.apache.jsp.WEB_002dINF.layouts.default_jspx._jspx_meth_tiles_005finsertAttribute_005f2(default_jspx.java:233) 
    at org.apache.jsp.WEB_002dINF.layouts.default_jspx._jspService(default_jspx.java:96) 
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389) 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684) 
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:471) 
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402) 
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329) 
    at org.apache.tiles.servlet.context.ServletTilesRequestContext.forward(ServletTilesRequestContext.java:241) 
    at org.apache.tiles.servlet.context.ServletTilesRequestContext.dispatch(ServletTilesRequestContext.java:222) 
    at org.apache.tiles.renderer.impl.TemplateAttributeRenderer.write(TemplateAttributeRenderer.java:44) 
    at org.apache.tiles.renderer.impl.AbstractBaseAttributeRenderer.render(AbstractBaseAttributeRenderer.java:106) 
    at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:670) 
    at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:690) 
    at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:644) 
    at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:627) 
    at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:321) 
    at org.springframework.web.servlet.view.tiles2.TilesView.renderMergedOutputModel(TilesView.java:124) 
    at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:262) 
    at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1180) 
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:950) 
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) 
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) 
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:147) 
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77) 
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) 
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
    at java.lang.Thread.run(Thread.java:662) 

编辑:只是有点澄清。当我停止服务器并再次启动时,一切正常,并且通常会添加该字段。我试图用roo命令添加字段并修改java代码。

有什么建议吗?

干杯

+0

错误非常明显:'代码'label_com_springsource_pizzashop_domain_pizza_newfield'中没有找到针对语言环境'el_GR''的消息 – Xaerxess

回答

1

由于Xaerxess建议:在你application.properties(应该是project-root/src/main/WEB-INF/i18n/)丢失

label_com_springsource_pizzashop_domain_pizza_newfield=Label for newfield 

这些标签至少,如果你使用Web MVC框架的弹簧产生实体领域中产生的线Roo模块(尽管在web json中不能说),但是在我当前的项目中只有默认的语言环境(可能是项目启动时的配置错误)。

有点神秘的是,你的代码不显示字段的生成newfield。你是否在你的实体中手动引入了这个字段?

+0

请参阅编辑!谢谢! –

+0

是否意味着'application.properties'中的条目被Spring Roo正确添加,但只在Tomcat重新启动后才读取?根据我的经验,只有当Tomcat重新启动时,i18n属性文件才会重新加载。这里是一个[线程](http://forum.springsource.org/showthread.php?113590-Reload-property-file-without-restarting-tomcat)重载时不重启。 – Pao