如何修复javax.servlet.ServletException:BeanUtils.populate

时间:2015-01-28 01:39:51

标签: java windows ubuntu struts tomcat8

我的应用程序位于数字海洋服务器上,使用ubuntu Ubuntu 14.04.1 LTS(GNU / Linux 3.13.0-43-generic x86_64)

当我运行java -version时,我得到了这个输出:

java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)

我正在使用struts 2,我已经安装了tomcat 8.0.18来部署它。

我的应用程序几乎一切都很好,除了当我点击一个按钮从表单中保存一些特定信息时我得到了这个错误

javax.servlet.ServletException: javax.servlet.ServletException: BeanUtils.populate
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
javax.servlet.http.HttpServlet.service(HttpServlet.java:644)
javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

另一个根本原因是这个(就像底部显示的错误一样)

java.lang.IllegalArgumentException: No Index Value
org.apache.commons.beanutils.expression.DefaultResolver.getIndex(DefaultResolver.java:94)
org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:917)
org.apache.commons.beanutils.BeanUtilsBean.populate(BeanUtilsBean.java:830)
org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:433)
org.apache.struts.util.RequestUtils.populate(RequestUtils.java:467)
org.apache.struts.chain.commands.servlet.PopulateActionForm.populate(PopulateActionForm.java:50)
org.apache.struts.chain.commands.AbstractPopulateActionForm.execute(AbstractPopulateActionForm.java:60)
org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
javax.servlet.http.HttpServlet.service(HttpServlet.java:644)
javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

奇怪的事情

当我在Windows机器上部署相同的应用程序时,它运行得非常好,一切正常!当我使用unix(ubuntu 14.04,ubuntu 14.10,fedora 21)时它只是不起作用,我得到了上面的错误。

¿我该如何解决? 非常感谢!

很抱歉,如果这是一个noob错误,我是struts开发的新手

1 个答案:

答案 0 :(得分:0)

在我的情况下,select标签具有多属性会导致此问题。