Codding杂记

记录自己在项目和学习中遇到的一些问题和相应的解决方法。

  • 1.发布项目出错。

    发布项目的时候,会检查spring的jar冲突情况,遇到了在parent的pom.xml文件中引用了dubbo,当然也用到了spring的坐标,意外的是dubbo已经引用了spring的jar包,所以导致冲突,删除dubbo相关的引用 || 使用以下代码消除冲突。(2018-6-13)

    //发布报错:
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in file
    [/usr/local/software/apache-tomcat-7.0.73/webapps/easybuy-manager-web/WEB-INF/classes/spring/applicationContext-dao.xml]:
    Initialization of bean failed; nested exception is 'java.lang.reflect.MalformedParameterizedTypeException'
    //去除jar冲突
    <!-- dubbo相关 -->
    <dependency>
    	<groupId>com.alibaba</groupId>
    	<artifactId>dubbo</artifactId>
    	<version>${dubbo.version}</version>
    	<exclusions>
    		<exclusion>
    		<artifactId>spring</artifactId>
    		<groupId>org.springframework</groupId>
    		</exclusion>
    	</exclusions>
    </dependency>
    复制代码
  • 2.打包请打web工程

    随后发现使用parent工程直接从eclipseexport到处的war包也会报错,而web工程的是可以运行的。最好是使用gradle,maven等构建工具去完成。

  • 3.ArrayList删除倒数第二个元素不报ConcurrentModificationException原因

    从源码看到这应该清楚的知道遍历list时进行删除抛出错误的原因是因为modCount != expectedModCount,而删除倒数第二个不抛错的原因就在于迭代器获取元素前的hasNext()判断,当遍历到倒数第二个元素并删除该元素时将使列表的size-1并等于cursor,此时hasNext()返回false所以不再调用next()方法调用checkForComodification()进行修改验证。(原文来自blog.csdn.net/z28126308/a…

  • 4.$(selector).serialize()引起的乱码问题。

    很久之前做毕设的时候,遇到了一个让自己匪夷所思的乱码问题,反复检查了数据库编码方式,tomcat编码方式,编码过滤器是否有配置,但是都没有找到问题所在,最后通过去前端的请求开始朔源查找问题。终于,发现该请求方式是ajax的getJSON方式,而刚刚好的是自己传入的data是通过jQuery方法中的$(selector).serialize()序列化表单的方式,关键在于这个方法自动调用了encodeURIComponent方法将数据编码了,而且getJSON这个请求方式正如其名,是一个get请求,所以在web.xml中配置的CharacterEncodingFilter字符编码过滤器并不会对其进行过滤(只会处理post方式的请求),所以到了数据库之后就是乱码。 找到了原因,所以可以从两方面入手。

    • 1).自己去decodeURIComponent(XXX,true)手动解码
    • 2).配置了字符编码过滤器的话,就放弃getJSON方法,使用POST方式请求。(自己使用的,简单)
  • 5.版本,版本,版本!

    最近在组合不同的web容器和数据来搭建环境。这个过程遇到了很多坑,最重要的就是版本问题。首当其冲的就是东方通这个web容器了,之前项目经理给了一个5.0版本的,但是一直都打好的war包发布不上去,最后通过同事知道原来tongweb的5.0并不支持J2EE6的规范,所以没有实际上没有部署,因为没有出现springboot的启动标志,虽然war是解开了。后面同事给了我一个6.0版本的,还是不能访问。一直无果,最后经理提示我springboot的版本是不是太高了,我试着换成了1.5.14的版本,打好包拿去试一下,看到了successful和100%,人生美满!(在tongweb的console页面发布,需要使用父类优先)

  • 6.gradle项目中需要添加其他jar包?

    • 在工程中添加lib文件,将需要打包的jar放入该文件夹中。
    • 添加jar包依赖到项目中
    • gradle:compile编译lib下的jar
       dependencies {
          compile('org.springframework.boot:spring-boot-starter-jdbc')
          compile('org.springframework.boot:spring-boot-starter-web')
          compile fileTree(dir: 'lib', include: ['*.jar'])  //<-------
          //jetty容器
          //compile("org.springframework.boot:spring-boot-starter-jetty:1.5.4.RELEASE")
          //undertow容器
          //compile("org.springframework.boot:spring-boot-starter-undertow:1.5.4.RELEASE")
          //netty容器
          compile('io.gitlab.leibnizhu:spring-boot-starter-netty:1.0')
          compile('org.mybatis.spring.boot:mybatis-spring-boot-starter:1.3.2')
          //runtime('com.h2database:h2')
          testCompile('org.springframework.boot:spring-boot-starter-test')
      }
      复制代码
    • 使用gradle进行打包,ok
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值