`

Java开发遇到问题记录

    博客分类:
  • Java
阅读更多

Problem: 2010-7-10 在使用 commoms-chain 进行开发中,解析 chain 的配置文件时出现异常:

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.commons.digester.Digester.parse(Ljava/net/URL;)Ljava/lang/Object;
    at org.apache.commons.chain.config.ConfigParser.parse(ConfigParser.java:190)

Resolve: commoms-chain-1.2 +  commons-digester 1.8.1
Discussion: commoms-chain 中解析 xml 文件用到了 commons-digester  ,2者的版本不协调导致出现该异常。

 

Problem: 2010-7-10 跟Q1相关,在解决的过程中,搜到:

This is caused by certain method is not found in the commons digester library. You need to upgrade yourcommons-digester.jar   to latest version.

于是将 commons-digester 更新最新的 2.0,可是又出现了新的异常:

2010-07-10 19:53:50,233 [main] ERROR org.apache.commons.digester.Digester - Digester.getParser:
java.lang.UnsupportedOperationException: This parser does not support specification "null" version "null"

Resolve: 估计还是版本问题,于是试着将 commons-digester 版本换成 1.8 ,问题解决。

 

Problem: 2010-8 一个简单的Server程序,监听一个端口,等待接收数据进行处理,在本机(字符集UTF-8)环境下收到中文为乱码。

Resolve: 用 ISO-8859-1 进行转码。

 

Problem: 2010-9-12 调用WebService服务时出现如下异常(本机开发环境下用内嵌方式的jetty未出现异常,发布到本机Tomcat下也未出现该异常,发布到Wondows Server环境下的Tomcat 下时出现该异常):

Exception in thread "Thread-6" java.lang.RuntimeException: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.apache.cx f.wsdl.WSDLManager' defined in class path resource [META-INF/cxf/cxf.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInsta
ntiationException: Could not instantiate bean class [org.apache.cxf.wsdl11.WSDLManagerImpl]: Constructor threw exception; nested exception is java.lang.LinkageError: JAXB 2.1 API is being loaded from the bootstrap classloader, but this RI ( from jar:file:/.../WEB-INF/lib/jaxb-impl-2.2.1.jar!/com/sun/xml/bind/v2/model/impl/ModelBuilder.class) needs 2.2 API. Use the endorsed directory mechanism to place jaxb-api.jar in the bootstrap classloader. (
See http://java.sun.com/j2se/1.6.0/docs/guide/standards/)
        at org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:96)
        at org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:86)
        at org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:64)
        at org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:53)
        at org.apache.cxf.BusFactory.getDefaultBus(BusFactory.java:69)
        at org.apache.cxf.BusFactory.getThreadDefaultBus(BusFactory.java:106)
        at org.apache.cxf.BusFactory.getThreadDefaultBus(BusFactory.java:97)
        at org.apache.cxf.jaxws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:62)
        at javax.xml.ws.Service.<init>(Service.java:57)

Resolve: 在异常信息中大致也已给出方法:

1) 通过 System.getProperty("java.endorsed.dirs")  得到运行环境的 endorsed 完整路径 (不同的JDK, Tomcat 版本下的endorsed 路径是不同的,我的JDK:1.6, Tomcat: 6.0.26);

2) 将webapp / lib 下的 jaxb-api-2.2.1.jar 复制到 endorsed 下(若 endorsed 不存在则创建它)。

Discussion: 按字面意思大致是xml解析时用到的类库版本不匹配。

 

Problem: 2011-7 使用 org.apache.commons.beanutils.BeanUtils 复制bean属性,对Date类型已配置了转换类,但copy到Date类型属性(属性值为null)时,报:No value specified。

Discussion: 疑似 commons-beanutils v1.8.3 的 bug,因为以前版本(v1.7.x)是ok的。

相关文章:

http://www.javastrong.com/?p=18025

http://apache-commons.680414.n4.nabble.com/jira-Created-BEANUTILS-387-beanutils-copyProperties-throws-a-ConversionException-No-value-specified-e-td3238319.html

 

Problem: 2012-6-14 JDK1.6环境下接口实现自动生成的代码带有注解 @Override,该代码在JDK1.5 环境下编译报错,错误指向注解处

Resolve: 去掉接口实现方法的 @Override注解。

Discussion: JDK1.6 认为覆盖父类方法与实现接口方法都是 override, 而JDK1.5只有覆盖父类方法才认为是 override,但JDK文档中未体现1.5和1.6的区别。

(Eclipse中,接口实现方法是 空心小三角,覆盖方法是 实心小三角;另 JDK1.5环境下接口实现自动生成的代码无 @Override  注解。

 

Problem: 2013-3-13JTA应用单元测试时,以前pass的case failure了(事务未rollback)

Resolve: 改用xapool-1.6-beta.jar。

Discussion: 代码有所修改,用到了以下方法:

PreparedStatement java.sql.Connection.prepareStatement(String sql, String[] columnNames) throws SQLException

而xapool-1.4.jar 中尚未实现这个方法,因此failure。

 

但xapool-1.6-beta也存在一点问题,仍有几个prepareStatement方法未实现,于是准备修改xapool的源码,实现其未实现的方法。

下载xapool-1.6-beta源码建立开发工程,结果编译不过,最后发现需要使用JDK1.4版本方可编译。

另:xapool-1.4 貌似还存在着其他几个问题。

see: spring+jotm+jta+xapool+hibernate+oracle架构中多数据源出现的问题

 

Problem: 2013-6-9  代码修改后,运行JUnit testcase,然后failure了,查看原因,发现一个莫名其妙的异常信息:java.lang.ClassNotFoundException: com.vladium.emma.rt.RT    压根从没使用过这个class

Resolve:  clean & recompile

Discussion: 之前使用了 Coverage As 运行此 testcase,以致class中植入了某些东东

see: EclEmma java.lang.NoClassDefFoundError: com/vladium/emma/rt/RT 错误解决

使用 EclEmma 进行覆盖测试

 

 
分享到:
评论

相关推荐

    Java项目开发常见问题分析

    在Java项目开发过程中,开发者经常会遇到一系列的问题,这些问题可能涉及到编程语法、运行环境、框架应用、性能优化等多个方面。以下是一些Java项目开发中的常见问题及其解决方案,旨在帮助开发者提高工作效率,减少...

    阿里巴巴Java开发手册泰山版.pdf

    本手册聚焦于Java开发者在实际开发过程中可能遇到的问题和困惑,对Java编程中常见的规约、异常日志处理、单元测试、安全、数据库使用、工程结构、设计等方面做了细致的规定。 本手册的一个重要特点是其内容的系统性...

    Java开发芝麻信用实例

    2. 异常处理:与API交互过程中可能会遇到网络异常、数据解析异常等问题,需要使用try-catch-finally语句进行异常处理。 3. 输入/输出流:处理文件读写和网络数据传输,如JSON格式的数据,可能需要用到InputStream和...

    java开发微信支付源码

    在Java开发领域,微信支付是常见的在线支付方式之一,它为商家提供了安全、便捷的交易接口。本项目提供的"java开发微信支付源码"是一套完整的解决方案,旨在帮助开发者快速集成微信支付功能到自己的应用程序中。以下...

    java项目开发验收交接整套模板

    9. 风险管理:在交接阶段,应识别并记录潜在的风险,如依赖库的更新、技术栈的过时等,并提出应对策略,以减轻未来可能遇到的问题。 通过上述模板,Java项目的验收和交接将更加系统化和规范化,从而提高项目的成功...

    clearcase for java 开发库

    4. 回溯与调试:当遇到问题时,开发者可以快速定位到问题出现的代码版本,利用历史记录进行问题分析和调试。 总之,ClearCase for Java 开发库为Java开发者提供了强大的版本控制功能,帮助他们在复杂的开发环境中...

    JAVA项目开发全程实录

    总的来说,《JAVA项目开发全程实录》涵盖了从项目规划、编码实现、测试调试到上线运维的全过程,对于想要提升Java开发能力的程序员来说,是一份非常宝贵的资源。通过学习这些内容,你可以更好地理解和实践Java项目...

    技术总结(自己做项目遇到的问题整理)

    以上是项目开发过程中遇到的一些典型问题及其解决方案,这些知识对于Java开发者来说是非常基础且重要的。掌握这些技巧可以提高开发效率,解决实际问题。在遇到类似问题时,可以参考这些经验进行排查和处理。

    Java开发的俄罗斯方块游戏

    8. **错误处理与调试**:良好的错误处理机制能够确保游戏在遇到问题时不会崩溃。日志记录和异常处理是常见的做法。 9. **ErsBlocksGame**:这个文件名可能是游戏的主类或者项目文件夹,包含了游戏的所有源代码和...

    阿里巴巴Java开发手册(终极版).pdf

    阿里巴巴Java开发手册(终极版)是一本针对Java开发者的规范化指导手册,由阿里巴巴集团技术团队编写,目的是为了帮助Java开发者提高代码质量和开发效率。手册内容丰富,涵盖了编程规约、异常日志、单元测试、安全...

    AWS SDK for Java 开发人员指南1

    开发者可以查阅这些记录来了解每次更新的内容,以便决定何时升级到新版本,或者在遇到问题时回溯到先前的稳定版本。 **构建早期版本开发工具包的 Java 参考文档** 对于需要使用特定旧版本SDK的开发者,AWS提供了...

    全面的JAVA开发规范(pdf)

    6. 并发处理:多线程和并发编程是Java开发中经常遇到的问题,规约中详细描述了如何安全、有效地处理线程和锁。 7. 控制语句:控制语句如if-else、for、while等是编程中常用的流程控制方法,规范要求控制语句的合理...

    用案例学Java Web整合开发:Java+Eclipse+Struts 2+Ajax

    Eclipse作为一款流行的Java开发IDE,提供了代码编辑、调试、构建和部署的全套功能。它支持插件扩展,使得开发者可以安装Struts 2、Ajax等相关插件,简化开发流程。使用Eclipse进行Java Web开发,需要了解其工作空间...

    java web开发过程中出现的一些诡异问题(2)

    在Java Web开发过程中,我们经常会遇到一些看似诡异但实际上有其内在原因的问题。这些问题可能是由于对技术理解不深入、代码编写不当或配置错误所导致的。本文将探讨几个常见的Java Web开发中的难题,并尝试提供解决...

    银行账户管理系统 基于Java开发

    综上所述,银行账户管理系统基于Java开发涵盖了广泛的编程概念和技术,从数据库设计、安全性保障到用户交互,每个环节都需要精心规划和实现。这样的系统不仅需要扎实的Java编程基础,还需要对银行业务流程的深入了解...

    java开发三年项目经验心得

    ### Java开发三年项目经验心得分析 #### 一、项目经验概览 在这篇文章中,作者回顾了自己在Java开发领域三年的工作经历,期间参与了三个不同的项目,从中获得了丰富的实战经验和技术积累。这三个项目分别是涉密...

    JAVA项目开发流程

    5. **记录与追踪:** 记录开发过程中遇到的问题及其解决方案,便于后期维护和改进。 #### 四、测试与部署阶段 1. **测试计划:** 制定详细的测试计划,包括测试策略、测试用例等。 2. **系统测试:** 进行系统级别...

    基于java开发的排队取号小程序

    【基于Java开发的排队取号小程序】是一种利用Java编程语言设计和实现的轻量级应用程序,主要用于模拟和服务行业的排队管理。这种小程序可以有效地提高服务效率,优化客户体验,尤其适用于银行、医院、餐厅等需要顾客...

Global site tag (gtag.js) - Google Analytics