`
sunway
  • 浏览: 114731 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

工作中遇到的问题总结---不断更新

阅读更多

1. 启动tomcat报找不到com.ibm.db2.jcc.db2driver.
答案:将db2jcc.jar,db2jcc_license_cu.jar放入tomcat的lib下。将was.xml放到C:\apache-tomcat-6.0.20\conf\Catalina\localhost下。
2.启动tomcat 报严重: IOException while loading persisted sessions: java.io.EOFException
java.io.EOFException
 at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2228)
 
 Tomcat在启动时出现如下异常问题:

严重: IOException while loading persisted sessions: java.io.EOFException
严重: Exception loading sessions from persistent storage

是因为保存在硬盘上的session数据读取失败,问题似乎不大,但是如果不处理一下,每次启动都会出现这个问题,处理方法如下:

将work下面的文件清空,主要是*.ser文件,或者只是删除掉session.ser亦可。
3.  增加annotation后,发现hibernate停在那了,调高debug级别。发现在等待空闲的链接,在was.txt增加
maxActive="20"   
maxIdle="10"  

解决。
4。 Tomcat 启动时:An exception or error occurred in the container during the request processing
java.lang.OutOfMemoryError: PermGen space
解决:
修改Tomcat\bin\catalina.bat文件。
找到set JAVA_OPTS=%JAVA_OPTS% -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties"这句话。在前面加上rem注释掉。
在它下面加入:
set JAVA_OPTS=-server -Xms1<u>024m -Xmx1</u>024m -Xss512k -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true
重新启动Tomcat,正常启动了

Exception in thread "ContainerBackgroundProcessor[StandardEngine[Catalina]]" java.lang.OutOfMemoryError: PermGen space
set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=128M -XX:MaxPermSize=512m

Tomcat直接启动正常,通过myeclipse启动tomcat内存溢出.
MyEclipse启动Tomcat无视catalina.bat中设置内存大小的问题。
解决:
在 tomcat的catalina.bat中设置set JAVA_OPTS=-Xms128m -Xmx256m,直接使用startup.bat启动tomcat没有问题。
但是在myeclipse中配置tomcat后,通过myeclipse启动就出现内存溢出,之前在catalina.bat中设置的内存似乎没有作用。

           则需要做如下设置即可解决:

           MyEclipse --> Window --> Preference... --> MyEclipse --> Application Servers -->

           Tomcat --> Tomcat 6.X --> JDK --> Optional Java VM arguments :进行设置

           设置的内容:-Xms256m -Xmx512m
                       -Dcom.sun.management.jmxremote=true


-Xms1024m -Xmx1048m  -Dcom.sun.management.jmxremote=true
实际上我的是如下:
-Xms1024m -Xmx1048m -XX:PermSize=100M   -XX:MaxNewSize=256m   -XX:MaxPermSize=256m  -Dcom.sun.management.jmxremote=true


5.如果db2改了表结构后出现不能解决的问题。重启db2控制中心,在控制面板service中重启db2服务即可。
run_>db2cmd 然后db2 ? SQLSTATE号(23505) 看程序中报的db2错误意思.
6。如果出现问题,看日志,控制台打印出来,有很多是因为数据库字段设置问题,trim()一下。
7.db2 数据库创建。安装db2时,选择让db2创建一个用户,第二项,用户名是workbench,密码。。。。在was.xml文件中,必须使用此用户名才行,
username="workbench",而不能使用其他具有db2admin权限的用户。否则会报"com.sun.jdi.InvocationException occurred invoking method."
异常.

8.修改myeclipse部署在tomcat中的位置:
修改项目下的.mymetadata文件, context-root="/部署在tomcat中的目录"

9.WCS 修改spring_customization.xml里的数据库设置
10。项目启动tomcat   报错:
严重: Servlet.service() for servlet jsp threw exception    

org.apache.jasper.JasperException: /index.jsp(2,0) Unable to read TLD "META-INF/c.tld" from JAR file "file:/D:/**/WEB-INF/lib/standard-1.1.2.jar":

解决:删掉project-name/WEB-INF/lib下jsp-api.jar

11.在我们写javascript的时候经肯定会经常用到 document.getElementById() 这个方法,这么长一串很容易写错,而且其中getElementById又有大小写之分。
 其实prototype.js里提倡的一个方法就是使用$()简写,通过以下的函数,你可以用$('id')来实现document.getElementById('id') 这个功能,怎么样,很爽吧!


12.struts2 迭代二维list。
<s:if test="3-inputLayout[#key][#status.index].size()>0">
               <s:bean name="org.apache.struts2.util.Counter" id="counter">  
               <s:param name="first" value="1" />  
               <s:param name="last" value="(3-inputLayout[#key][#status.index].size())*2" />  
               <s:iterator>  
               <td width="16%" class="tableTitle1"></td>
              </s:iterator>  
           </s:bean>  
              
              
             
            </s:if>
            

13.
在java.lang包中有String.split()方法,返回是一个数组
我在应用中用到一些,给大家总结一下,仅供大家参考:
1、如果用“.”作为分隔的话,必须是如下写法:String.split("\\."),这样才能正确的分隔开,不能用String.split(".");
2、如果用“|”作为分隔的话,必须是如下写法:String.split("\\|"),这样才能正确的分隔开,不能用String.split("|");
“.”和“|”都是转义字符,必须得加"\\";
3、如果在一个字符串中有多个分隔符,可以用“|”作为连字符,比如:“acount=? and uu =? or n=?”,把三个都分隔出来,可以用String.split("and|or");
使用String.split方法分隔字符串时,分隔符如果用到一些特殊字符,可能会得不到我们预期的结果。
我们看jdk doc中说明

 

public String[] split(String regex)  Splits this string around matches of the given regular expression.  参数regex是一个 regular-expression的匹配模式而不是一个简单的String,他对一些特殊的字符可能会出现你预想不到的结果,比如测试下面的代码:

用竖线 | 分隔字符串,你将得不到预期的结果

    String[] aa = "aaa|bbb|ccc".split("|");
    //String[] aa = "aaa|bbb|ccc".split("\\|"); 这样才能得到正确的结果

    for (int i = 0 ; i <aa.length ; i++ ) {
      System.out.println("--"+aa[i]);
    }

用竖 * 分隔字符串运行将抛出java.util.regex.PatternSyntaxException异常,用加号 + 也是如此。

    String[] aa = "aaa*bbb*ccc".split("*");
    //String[] aa = "aaa|bbb|ccc".split("\\*"); 这样才能得到正确的结果   

    for (int i = 0 ; i <aa.length ; i++ ) {
      System.out.println("--"+aa[i]);
    }

显然,+ * 不是有效的模式匹配规则表达式,用"\\*" "\\+"转义后即可得到正确的结果。

"|" 分隔串时虽然能够执行,但是却不是预期的目的,"\\|"转义后即可得到正确的结果。

还有如果想在串中使用"\"字符,则也需要转义.首先要表达"aaaa\bbbb"这个串就应该用"aaaa\\bbbb",如果要分隔就应该这样才能得到正确结果:

String[] aa = "aaa\\bbb\\bccc".split("\\\\");

转自:http://hi.baidu.com/danghj/blog/item/7259c2b461bebc708bd4b21e.html

14.ext onReady 用 window.onload(a);解决。
或是在目标div 后使用 Ext.onload(a); function a () {  Ext.tabTanel = ...}

15.Hibernate 懒加载问题,不能load出属性为List 类型的对象列表,这是没有把数据库操作加到相应的事物中的结果。
没有放到事务的结果。
报invokeException.
解决:
在web.xml中,
<filter>
  <filter-name>hibernateFilter</filter-name>
  <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
  <!--
   set the singleSession to false, otherwise,
   the flush_mode will be set to NEVER(read-only),
   then we can not save or update or delete the entity
  <init-param>
   <param-name>singleSession</param-name>
   <param-value>true</param-value>
  </init-param>
  -->
 </filter>
 
 <filter-mapping>
  <filter-name>hibernateFilter</filter-name>
  <url-pattern>*.do</url-pattern>
 </filter-mapping>

 <filter-mapping>
  <filter-name>hibernateFilter</filter-name>
  <url-pattern>*.jsp</url-pattern>
 </filter-mapping>
 
 
 在applicationContext.xml中,
 <tx:advice id="txAdvice" transaction-manager="transactionManager">
     <tx:attributes >
      
      <!-- Web action -->
      <!-- Web Action can't be advised, spring aop(including annotation) conflicts with struts interception mechanisam -->
      <!-- Using struts transaction interceptor instead -->
      
      <!-- Service -->
      <tx:method name="trans*" propagation="REQUIRED" rollback-for="Throwable"/>
      <tx:method name="generate*" propagation="REQUIRED" rollback-for="Throwable"/>
      <tx:method name="get*" propagation="REQUIRED" rollback-for="Throwable"/>------- 加的
      
      <!-- DAO action -->
      <tx:method name="*Save*" propagation="REQUIRED" isolation="READ_COMMITTED" rollback-for="Throwable"/>
      <tx:method name="*Delete*" propagation="REQUIRED" isolation="READ_COMMITTED"  rollback-for="Throwable"/>
      <tx:method name="find*" propagation="REQUIRED" isolation="READ_COMMITTED"  rollback-for="Throwable"/>------- 加的
      
      <!-- default process for all method invoke, should be reconsidered with performance test result. -->
      <tx:method name="*" propagation="NOT_SUPPORTED" read-only="true" rollback-for="Throwable"/>
      
     </tx:attributes>
   </tx:advice>

16。报query出错,语法错误,很多时候是数据库表没有数据造成的,这是数据库表数据不正确问题。
解决:
 重新导入一个好用的库。
 17。tomcat 启动时,struts2报错。一种情况是tomcat安装目录中存在空格,这肯定报错。
 18.update 数据时出错。报
 异常信息查看 Could not execute JDBC batch update; nested exception is org.hibernate.exception.DataException: Could not execute JDBC batch update org.springframework.dao.DataIntegrityViolationException: Could not execute JDBC batch update; nested exception is org.hibernate.exception.DataException: Could not execute JDBC batch update
 解决:
 这是插入的字段类型和数据库字段不匹配导致的,每个字段输入符合数据库字段类型的正确的数值即可。
 
 19。页面传给后台时使用的是name字段,不是id。否则报找不到id错误。
 解决:
 <s:hidden name="appId" id="appId"></s:hidden>
 页面显示No Result Defined.一般是页面传递参数有问题,传递的值是空值
 解决:加%{}
 <s:hidden name="appMain.appMainId" value="%{appMain.appMainId}"></s:hidden>
     <s:hidden name="appId" value="%{appMain.appMainId}"></s:hidden>
     
 20.db2单独导出导入一个表连同其数据的方法    
 我们可以尝试一下这种方式备份数据。
1、连接数据库 DB2 CONNECT TO DB USER ** USING PASSWORD
2、使用命令。DB2 EXPORT TO ***.ixf OF ixf SELECT * FROM TAB1 这样就可以将一个表的数据全部备份,而且同时创建了TAB表结构。
3,使用命令。DB2 IMPORT FROM ***.IXF OF IXF CREATE INTO TAB2 这样就可以将数据连同表结构导入数据。

这种方法很方便,数据及结构一次性全部搞定。但是缺点就是只能针对一个表的操作。若要对整个数据库做操作,我们可以编写一个批量脚本的BAt文件,可以直接运行。这样的备份时很方便的。

21。CodeTable 业务数据作为主键,设计错误。
解决:
表的主键是不允许被更改的,这是数据库设计的基本原则。

22.struts2配置文件加载顺序。
默认只加载类路径下的struts.xml等三类文件。
我的:
D:\workspace-was\WAS_V10_SRC\src\main\resources\struts.xml
<struts>
 <include file="/was/struts.xml"/>
 <include file="/advanced/struts.xml"/>
 <include file="/basic/struts.xml"/>
</struts>
后面覆盖前面的。

23.导入一个id为自增类型IXF文件
一般会拒绝读入.
解决:
IMPORT FROM 'C:\Documents and Settings\cn02557\Desktop\temp\bs_role_mod_entry.ixf' OF IXF
modified by identityignore
  COMMITCOUNT AUTOMATIC
  INSERT INTO "WORKBENCH"."BS_MOD_ROLE_ENTRY";

#SYNC 10;

24.代码表修改后需要重启Server才起效,否则还是先前的结果。
25.国际化文件不起作用。
解决:
首先,查看struts-base.xml中,value中是否已经包含了国际化文件的baseName.
<constant name="struts.custom.i18n.resources" value="/basic/string,/advanced/string,/was/string, workbench_string"></constant>

26.调试struts页面用的JS:
解决:
 <script type="text/javascript">
   var  stepsAll = [
       <s:iterator value="relations" id="relation">
       <s:text name="#relation.entity" />
       <s:text name="#parameters.action" />
       <s:text name="#parameters.id"/>
       <s:text name="@com.atosorigin.workbench.core.util.Utils@toLowerCase(#relation.entity)" />
       <s:text name="Entity.%{#relation.entity}" />
       </s:iterator> 
    ];
  
  
  </SCRIPT>
  
  27.报Struts has detected an unhandled exception,java.io.IOException: Stream closed
  发现是因为里面的属性没有初始化造成的。参考了如下:
  
http://hi.baidu.com/jxcfree/blog/item/31873d5396c05d6e853524b6.html
  Struts has detected an unhandled exception2010-04-29 23:15今天写了一个小时的程序,结果调试就用了四个多小时。。。

调试时,总会有“Struts has detected an unhandled exception”报错,实在找不了问题,最后没办法了把以前一个相近的程序拿来对比,才发现忘了把model初始化了,因为用了ModelDriven<T>接口,唉,又是四个小时。。。
 


  解决:
  private List<ParamHelper> included -》private List<ParamHelper> included = new ArrayList<ParamHelper>();
  private List<ParamHelper> excluded -》private List<ParamHelper> excluded = new ArrayList<ParamHelper>();
  所以要养成正确编码的习惯,否则可能报很多莫名错误。
  
  28。在测试页面时每个页面尾部</body>上面加上jxw.jsp的路径,方便调试,和最后的清除。
  如</table>
  jxw.position/view.jsp
 </body>
 
 29.hibernate的Could not execute JDBC batch update错误原因及处理
 这个是由于没有将方法放入事务中的结果。
 解决:
 1。首先applicationContext-datasource.xml中设置hibernate.jdbc.batch_size =0,这样可以报出隐藏在batch update的真正错误原因。
 2。applicationContext.xml中将方法加入事务。如下:
 <tx:method name="modify*" propagation="REQUIRED" isolation="READ_COMMITTED" rollback-for="Throwable"/>
 3如果上两步还没解决,看下数据库字段设置。如果复合主键的每个主键设置成character(10),则页面上必须输入10位,否则hibernate会认为这是一条新的数据,
 将会执行insert操作,而不是update。因为系统的某个地方对空格进行了trim,如果页面上没有输满10位,数据库中的数据是带空格的,但是系统里不带空格,
 则从数据库中取不到相应的数据。所以页面上也显示不出来数据。----------这个我本来该注意到的。。将字段设置成varchar(10),则没有问题了。但是会带来性能问题。
 varchar性能低于character。
 
 最简单情况:
 
关键字: hibernate could not execute jdbc batch update
碰到这个错误Could not execute JDBC batch update

原因:数据库表中设置了关联关系,但是在插入数据的时候没有设置关联关系,插入的时候就是错误的。

改正:设置对表之间的关联关系就可以了。

分享到:
评论

相关推荐

    年度工作参考总结-2020学年度工作参考总结 .doc

    - 通过参加校本培训,教师需要不断更新教育理念,适应教育的发展需求。 - 强调教师职业道德的重要性,要求教师热爱教育事业,关心学生,致力于提高教学水平。 2. **教育教学工作方面**: - 提高教学质量的关键...

    大队年度工作总结-[钻探队2013年度工作总结].docx

    在这篇钻探队2013年度工作总结中,我们可以提炼出以下几个关键知识点: 1. 安全工作: - 钻探队在2013年继续保持了零事故的记录,强调了安全工作的首要地位。通过班前会议强调安全,并在井下加强互保联保机制,以...

    程序员的工作总结-述职报告

    - 维护与修改工作持续进行,尤其是在遇到问题时,如工单管理和系统升级模块的频繁调整,显示了在实际运营中软件需不断适应需求变化。 2. **有线BOOS系统** - 在PDA运维项目稳定后,程序员参与了BOOS系统的改进,...

    公司员工年终工作总结-公司年终工作总结报告.docx

    通过以上总结与分析,可以看出作者对于个人成长有着清晰的认识,并且对如何改善当前工作中存在的问题提出了具体的建议。此外,他还对未来的工作规划有着明确的目标,并对公司整体的发展给出了积极的反馈和支持。这种...

    初中地理工作总结-精选范文.pdf

    - 对于遇到的问题和失败的尝试,教师应进行反思,总结教训,不断调整教学方法,提高教学质量。 4. 学生学习情况的跟踪与反馈: - 教师需要定期通过作业、测验和课堂表现等方式,跟踪学生的学习进展和理解程度。 ...

    业务经理年终工作个人总结-1.docx

    - 面对工作中遇到的问题,如产品质量、交货时间等问题,需及时处理,同时,寻找创新解决方案以提升工作质量。 8. **客户关系管理**: - 维护客户关系至关重要,确保产品质量和服务满意度,以减少退货和投诉,增强...

    酒店会计实习总结-酒店工作总结.docx

    - **内部掌握调整**:随着酒店业务的发展,内部会计控制需要不断更新和完善,以适应新的挑战和需求。 - **风险防范**:防止财务欺诈和错误,确保资产安全,提高会计信息的可靠性。 3. **人际关系与沟通** - **...

    房地产公司上半年工作总结 -总结PPT.pptx

    ### 房地产公司上半年工作总结知识点 #### 一、引言 - **目的**: 对房地产公司2023年上半年的...同时,也清晰地指出了公司在内部管理和运营中存在的问题和面临的挑战,为下半年的工作提供了明确的方向和改进措施。

    幼儿园班主任下半年工作总结-班主任工作总结PPT.pptx

    - **家庭问题解决**:协助解决孩子在家庭中遇到的问题,提高家长和孩子的满意度。 #### 三、工作反思 1. **班级管理反思**: - **常规建立**:班级已建立起基本的行为规范,但仍需进一步巩固。 - **环境营造**...

    -2021年医生个人总结_医生个人总结_医生年终个人总结_医生下乡个人总结 --个人总结.docx

    - **案例分析**:通过实际工作中遇到的具体问题来检验理论的有效性,这种方式不仅有助于个人技能的提高,也为日后处理类似问题提供了宝贵的经验。 #### 二、职业道德与职业态度 - **恪守医德**:作者强调了作为...

    精品工作总结范文模板-2017年个人工作总结 (2).docx

    通过上述分析可以看出,2017年的个人工作总结不仅展示了该员工在土地流转工作中的具体贡献,还体现了其在理论学习、工作规划、问题解决等方面的成长与进步。对于其他从事类似工作的人员来说,这些经验同样具有很高的...

    宿管委员个人总结-总结.docx

    从给定文件的信息来看,这份文档包含了宿管委员在宿管部的工作总结和个人反思。下面将根据要求,从标题、描述、...通过这样的工作经历,宿管委员不仅能够为同学们提供更好的居住环境,还能在实践中不断成长和完善自我。

    网络优化个人年终总结-年终总结.docx

    - **实施过程**:选购合适的硬件,并解决调试过程中遇到的问题(如回音过大)。 - **成果**:虽然初期遇到了一些技术障碍,但最终实现了较为满意的会议效果。 - **数据库安装培训**: - **培训目的**:提高团队...

    计算机教学年终工作总结- .docx

    在计算机教学领域,年终工作总结是一个重要的环节,它反映了教师在过去一年的教学实践中所做的工作,取得的成绩,以及遇到的挑战和改进措施。总结的目的在于对教学经验进行反思,以提升教学质量,同时也为未来的教学...

    精品工作总结模板范文-销售工作总结范文3.doc

    以下是对销售工作总结中提到的几个关键知识点的详细说明: 1. **产品知识与市场分析**: - 销售人员需要深入理解产品,以便更好地向客户传达其价值。 - 定期分析市场信息,以便调整销售策略,例如适时制定营销...

    精品工作总结模板范文-钢铁企业个人工作总结.doc

    3. **问题与挑战**:分析在工作中遇到的问题和挑战,如技术难题、市场变化或内部管理问题,并阐述如何应对和解决,展示问题解决能力。 4. **学习与成长**:强调个人在专业技能和知识上的提升,如通过培训、自我学习...

    生活委员个人总结-个人总结.docx

    - **存在的问题**:比如在财务管理过程中可能出现的问题,或者组织活动中遇到的挑战。 - **改进建议**:针对存在的问题提出具体的改进建议,以期在未来的工作中做得更好。 ### 5. 未来规划 最后,生活委员还应该对...

    -2021年监理个人总结_监理个人年终总结_监理个人总结_农机监理个人总结 --个人总结.docx

    - **工作反思**:总结过去一年的工作经验,反思遇到的问题和挑战,从中吸取教训。 - **未来规划**:制定新的工作计划,迎接新的挑战,为公司和个人的发展做出更大贡献。 通过上述内容可以看出,该监理工程师不仅在...

    2021中国农业银行年终总结-总结.docx

    - **共同成长**:员工之间会相互帮助解决工作中遇到的问题,共同提升业务水平和服务质量。这种积极的团队合作氛围有助于提升整体工作效率。 ### 4. 不断学习与适应新变化 - **终身学习的态度**:面对银行业务不断...

    雷小伟-24-03.06员工工作总结.docx

    - **问题反馈**:列出工作中遇到的问题以及解决方案或计划采取的方法。 - **参考资料**:记录解决问题时所参考的资源。 - **自我总结**:反思当天的工作表现,总结收获或发现不足之处。 - **对公司建议**:提出有助...

Global site tag (gtag.js) - Google Analytics