首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tomcat5和java7 U21中的新错误

tomcat5和java7 U21中的新错误
EN

Stack Overflow用户
提问于 2013-05-08 05:59:08
回答 1查看 656关注 0票数 0

我有一个用Java + MySql + Tomcat5开发的系统。我曾经使用Java6,但是我用java7将我的机器更新为win8,当我运行我的servlet时,我从Tomcat处得到了这个错误。有没有人知道为什么会发生这样的事情,或者如何修复它。

代码语言:javascript
复制
javax.servlet.ServletException: java.lang.IllegalArgumentException: HOUR_OF_DAY: 0 -> 1
    at java.util.GregorianCalendar.computeTime(GregorianCalendar.java:2764)
    at java.util.Calendar.updateTime(Calendar.java:2606)
    at java.util.Calendar.getTimeInMillis(Calendar.java:1118)
    at java.util.Calendar.getTime(Calendar.java:1091)
    at com.genexus.GXutil.resetTime(Unknown Source)
    at com.genexus.db.driver.GXConnection.isNullDate(Unknown Source)
    at com.genexus.db.driver.GXResultSet.getGXDate(Unknown Source)
    at paddmwl__default.getResults(paddmwl.java:911)
    at com.genexus.db.DataStoreProvider.readNext(Unknown Source)
    at com.genexus.db.DataStoreProvider.execute(Unknown Source)
    at paddmwl.execute_int(paddmwl.java:44)
    at paddmwl.execute(paddmwl.java:30)
    at hconsola_impl.e202U2(hconsola_impl.java:3490)
    at hconsola_impl.evt2U2(hconsola_impl.java:478)
    at hconsola_impl.dispatchEvents(hconsola_impl.java:180)
    at hmasterpageww_impl.evtCH2(hmasterpageww_impl.java:215)
    at hmasterpageww_impl.wsCH2(hmasterpageww_impl.java:146)
    at hmasterpageww_impl.webExecute(hmasterpageww_impl.java:53)
    at hconsola_impl.webExecute(hconsola_impl.java:62)
    at com.genexus.webpanels.GXWebObjectBase.doExecute(Unknown Source)
    at hconsola.doExecute(hconsola.java:19)
    at com.genexus.webpanels.GXWebObjectStub.callExecute(Unknown Source)
    at com.genexus.webpanels.GXWebObjectStub.doPost(Unknown Source)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:419)
    at org.apache.catalina.servlets.InvokerServlet.doPost(InvokerServlet.java:169)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
    at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
    at java.lang.Thread.run(Thread.java:722)

    com.genexus.webpanels.GXWebObjectStub.callExecute(Unknown Source)
    com.genexus.webpanels.GXWebObjectStub.doPost(Unknown Source)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:419)
    org.apache.catalina.servlets.InvokerServlet.doPost(InvokerServlet.java:169)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

我现在知道为什么会发生这种情况了,但我没有从谷歌那里得到任何信息。谢谢你的帮助。祝你一天愉快!!:)

EN

回答 1

Stack Overflow用户

发布于 2013-11-12 04:19:00

我见过在巴西解析日期时由于DST (夏令时)限制而抛出的异常。

似乎在手头的情况下,由于DST的限制,GregorianCalendar正在抛出一个IllegalArgumentException。根据GregorianCalendar的说法,当DB驱动程序尝试读取日期字段时,存储的日期不是有效的日期,因为时间部分是零(午夜),并且该特定日期没有午夜。

我知道这听起来很奇怪,但问题是DST的定义方式(至少在巴西是这样的,我不知道其他国家是这样的),当我们进入DST时,我们的时钟从午夜改为凌晨1点。这导致了没有午夜的现象,因为它被替换为凌晨1点,这导致了我们在这里看到的问题。在美国我们没有这个问题,因为DST在凌晨3点改变,所以午夜总是在它应该在的地方。我想知道如何处理凌晨3点到4点的时间,以避免这种怪癖。

据我所知,处理这个问题的唯一方法是永远不要将日期存储为零的时间部分。

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

https://stackoverflow.com/questions/16429249

复制
相关文章

相似问题

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