Java开发异常总结

本文档详细解析了在使用SSM框架过程中遇到的MyBatis类未找到错误、响应码异常、前端异步执行顺序问题、Redis缓存乱码、Dubbo服务调用失败及Maven配置错误等常见问题,并提供了相应的解决策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.MyBatis相关 

java.lang.NoClassDefFoundError: org/apache/ibatis/session/RowBounds

/*这个问题的原因是:在使用ssm框架时,在web端引入了pagehelper插件,删除pagehelper即可,
若删除后控制台报异常,但不影响程序运行的话,可以将dao层的mybatis相关包引入到web端,
这样就没有异常了*/

二.响应问题

问题:注册功能检验用户名是否存在,请求响应码为302
原因:因为没有用户登录所以请求被拦截,修改拦截配置即可。

三.前端相关

flag=false;
//检查用户名是否已被注册
	$scope.checkUserExsit=function(){
		sellerService.findOne($scope.entity.sellerId).success(
				function(response){
					if(response.sellerId!=null){
						$scope.tip="用户名已被注册";
						flag=false;
					}else{
						$scope.tip="用户名可用";
						flag=true;
					}					
				}
			);
	}
	//注册
	$scope.add=function(){
	
		$scope.checkUserExsit();	
	    setTimeout(function(){
				if(flag){
					sellerService.add( $scope.entity  ).success(
							function(response){
								if(response.success){
									location.href='shoplogin.html';
								}else{
									alert(response.message);
								}
							}		
						);
				}else{
					alert("请检查输入项");
				}
			},300);
		
	}

问题:上述add方法执行时不按代码顺序来,总是先执行if语句再执行checkUserExsit()

原因:checkUserExsit()发送了一个ajax请求,需要响应时间,add方法本身为异步操作,不会被上面的ajax请求阻塞,所以每次都是if()先执行,然后再执行了checkUserExsit();

四.缓存相关

问题:通过springdataredis设置的key,在客户端查看时,key和value都带有乱码

解决:修改redis的配置文件如下
   <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">  
    	<property name="connectionFactory" ref="JedisConnectionFactory" /> 
	     <property name="keySerializer">  
	        <bean class="org.springframework.data.redis.serializer.StringRedisSerializer"></bean>  
	    </property>    	 
	    <property name="valueSerializer">
        	<bean class="org.springframework.data.redis.serializer.StringRedisSerializer"></bean>
        </property> 
   </bean>  

五.Dubbo框架

Caused by: java.lang.IllegalStateException: Failed to check the status of the service com.pinyougou.page.service.ItemPageService. No provider available for the service com.pinyougou.page.service.ItemPageService from the url zookeeper://IP:2181/com.alibaba.dubbo.registry.RegistryService?application=pinyougou-manager-web&default.timeout=300000&dubbo=2.8.4&interface=com.pinyougou.page.service.ItemPageService&methods=genItemHtml&pid=15104&revision=0.0.1-SNAPSHOT&side=consumer&timestamp=1552103055145 to the consumer 169.254.103.128 use dubbo version 2.8.4

原因:未检测到所调用服务
解决:查看配置文件、包名类名是否配置正确

六.配置MavenProfile

Cause: com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 3 字节的 UTF-8 序列的字节 3 无效。  

方案一:在配置文件的注释中出现了中文注释和中文空格 ,将其删除或改成英文注释即可

方案二:检查xml的头文件和右键属性里面的编码是否一致

方案三:尝试在pom.xml加入如下配置:
<build>  
   <resources>  
        <resource>  
            <directory>src/main/resources</directory>  
            <filtering>true</filtering>  
        </resource>  
   </resources>  
  
   <plugins>  
        <plugin>  
            <groupId>org.apache.maven.plugins</groupId>  
            <artifactId>maven-resources-plugin</artifactId>  
            <configuration>  
                <encoding>UTF-8</encoding>  
            </configuration>  
        </plugin>  
  </plugins>  
</build>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值