关于错误的那点事——惨不忍睹的错误
- springMVC跳轉問題
- 頁面跳轉500頁面問題
- SpringMVC與mybatis整合問題
- mybatis 掃描mapperxml文件問題
- mybatis下面在包下面的xml文件不被編譯
- 上傳圖片自定義樣式后無法上傳圖片問題
- 在idea中如果你遇到HttpServletRequest無法導入的情況
- 加載properties配置文件時遇到的問題
- 使用idea編譯項目的時候遇到錯誤 程序包javaxservlet不存在
- 使用mybatis-generator生成的mappper 向數據庫插入數據時始終無法插入并控制臺報錯
- orgapacheibatisbindingBindingException Invalid bound statement comUserMapper
- 數據庫插入中文顯示
- Spring的注入問題
- MybatisGenerator生成的代碼提示已經存在
- BootstrapUtil錯誤
- HTTP Status 500 - Servletinit for servlet mvc-dispatcher threw exception
- 利用ajax提交表單被瀏覽器攔截修改問題
springMVC跳轉問題
這幾天用springMVC,配置好了,就是不能跳到WEB-INF下面的jsp,回去仔細看了配置文件發現。
- 之前:
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
- 改正之后:
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
被自己蠢哭了有木有。
頁面跳轉500頁面問題
- 訪問jsp有的可以訪問,有的直接跳轉500,感覺路徑沒有一點問題,由于這幾天剛整合了shiro,還以為是shiro的問題,搞得我把shiro官方文檔看了一遍,問題沒解決,shiro倒是會用了,真的是醉了,無意間發現了問題,是因為頁面jsp引入的js或者css的問題,${contextPath}寫成了#{contextPath},導致頁面出錯,才跳轉的500,由于web.xml里面配置了500錯誤跳轉的頁面。
- 之前:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 修改之后:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
先注釋掉500的錯誤跳轉頁面,正式環境上在打開注釋
SpringMVC與mybatis整合問題
- NoClassDefFoundError: org/springframework/jdbc/datasource/TransactionAwareDataSourceProxy
缺少: ‘org.springframework:spring-jdbc:4.2.4.RELEASE’,
- java.lang.NoClassDefFoundError: org/springframework/dao/DataAccessException
缺少:’org.springframework:spring-tx:4.2.4.RELEASE’,(就是spring-transaction)
mybatis 掃描mapper.xml文件問題
- 一直提示無法找到mapper文件夾中的xml文件,can’t create bean …
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
改正之后:
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource" /><!--自動掃描mapping.xml文件--><--就因為classpath后面要跟一個*--><property name="mapperLocations" value="classpath*:com/ttc/dao/mapper/*.xml"></property></bean>- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
mybatis下面在包下面的xml文件不被編譯
上傳圖片自定義樣式后無法上傳圖片問題
<input class="real_file" type="file" name="upload" accept="image/*" capture="camera" onchange="uploadPicture('imgCUpload')" style="display: none" id="imgC"/> <div class="upload" onclick="triggerInputClick('imgC')"><img id="up_img3" src="${contextPath}/images/epaylink/upload_ico.png"/> </div>- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
js文件:
/*** 選擇圖片后直接上傳圖片*/ function uploadPicture(imgId) {$("#" + imgId).click(); }- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
上傳圖片的οnchange=”uploadPicture(‘imgUpload’)”方法要寫在html頁面的表單域里面,不然沒有效果。
在idea中如果你遇到HttpServletRequest無法導入的情況
@RequestMapping(value="/imageUpload",method = RequestMethod.POST)public void springUpload(HttpServletRequest request) {// TODO}- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
這種情況是因為你沒有導入Applycation Servlet Library,將其添加到項目中就可以了
加載properties配置文件時遇到的問題
修改前:
prop = new Properties();InputStream is = null;try {ClassLoader classLoader = Thread.currentThread().getContextClassLoader();is = classLoader.getResourceAsStream("resources/" + fileName);if (is != null) {prop.load(is);}- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
修改后:
prop = new Properties();InputStream is = null;try {ClassLoader classLoader = Thread.currentThread().getContextClassLoader();is = classLoader.getResourceAsStream(fileName);if (is != null) {prop.load(is);}- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
就因為我在前面加了一個/resources,結果就無法加載。
使用idea編譯項目的時候遇到錯誤: 程序包javax.servlet不存在
原因是沒有servlet-api這個包,我使用的是gradle。
dependencies {compile('javax.servlet:javax.servlet-api:3.1.0') }- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
在build.gradle中加入這句話就可以了。
使用mybatis-generator生成的mappper, 向數據庫插入數據時,始終無法插入,并控制臺報錯。
Java.lang.IllegalArgumentException: Result Maps collection already contains value for com.ttc.dao.PermissionMapper.BaseResultMap
百思不得其解,因為我用的是mybatis-generator,使用代碼對比工具,發現生成的PetMapper.xml多了幾百行!!!
原來是我在運行時沒有把之前已經生成的userMapper.xml刪除掉,再次生成代碼時,又附加了上去!所以在運行代碼生成之前,要把以前已經生成的xml文件清掉,以妨出錯。
org.apache.ibatis.binding.BindingException: Invalid bound statement (com.*.*.UserMapper)
今天使用mybatis-generator生成的mapper不滿足要求,增加了一個方法然后就一直報綁定錯誤的問題
@ResourceArticleTypeMapper articleTypeMapper;- 1
- 2
- 1
- 2
還一直有一行的波浪線說是無法注入,我就奇怪了重頭檢查了一邊沒有發現問題,最后我就去build(編譯后的文件夾)去看了一下,里面的mapper.xml竟然沒有更新。還是gradle沒有用熟啊,又手動去刷新了一下,運行通過。
數據庫插入中文顯示????
| 1 | ??? | BLOG |
| 2 | benny??? | BLOG |
MySQL的my.ini文件已經都改成utf8了,最后找到問題是因為:
jdbc.url=jdbc:mysql://localhost:3306/blog?useUnicode=true&characterEncoding=utf8- 1
- 2
- 1
- 2
Spring的注入問題
- 正常情況下:
- 1
- 2
- 3
- 1
- 2
- 3
現在想要寫一個公用的類,于是就要寫成static了,如果直接?
@Autowired?
@Qualifier(value = “ECPSysArgsServiceImpl”)?
private static ECPISysArgsService sysArgsServiceImpl;
這樣是無法注入的,所以要采用構造器注入。
private static ECPISysArgsService sysArgsServiceImpl;@Autowiredpublic ArgsUtil(ECPISysArgsService sysArgsServiceImpl){ArgsUtil.sysArgsServiceImpl = sysArgsServiceImpl;}- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
完整代碼如下:
@Service @Lazy(false) public class ArgsUtil {private static ECPISysArgsService sysArgsServiceImpl;@Autowiredpublic ArgsUtil(ECPISysArgsService sysArgsServiceImpl){ArgsUtil.sysArgsServiceImpl = sysArgsServiceImpl;}public static String ADDR_ARGS = "";public static String DEFAULT_ADDR = "http://192.168.5.77:8080";/*** @return java.lang.String* @author benny* @date 2016/4/22* @method getArgs* @version V1.0.0* @description 獲取系統管網地址 如果從緩存中讀取不到直接返回管網地址*/public static String getArgs() {try {ADDR_ARGS = sysArgsServiceImpl.getSysMap(Constants.SYS_IHUI_ADDR).getResult();} catch (Exception e) {e.printStackTrace();}if (StringUtils.isBlank(ADDR_ARGS)) return DEFAULT_ADDR;return ADDR_ARGS;}}- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
寫完發現還是注入失敗,暈死,原來是忘記在類上加上注解@SERVICE
MybatisGenerator生成的代碼提示*已經存在
Caused by: org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [E:\hellofdssd\ttc-blog\build\classes\artifacts\ttc-core\exploded\ttc-core-1.0-SNAPSHOT.war\WEB-INF\classes\mapper\ArticleMapper.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: java.lang.IllegalArgumentException: Result Maps collection already contains value for com.ttc.dao.ArticleMapper.BaseResultMapat org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:468)at org.mybatis.spring.SqlSessionFactoryBean.afterPropertiesSet(SqlSessionFactoryBean.java:343)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574)... 108 more- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
原因很明顯,也很尷尬,生成的代碼我沒有刪除直接又執行了一次,于是就在上一次的代碼之上,又生成了一次,所以報代碼重復問題
BootstrapUtil…..錯誤
java.lang.IllegalStateException: Could not load CacheAwareContextLoaderDelegate [class org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate]at org.springframework.test.context.BootstrapUtils.createCacheAwareContextLoaderDelegate(BootstrapUtils.java:101)at org.springframework.test.context.BootstrapUtils.createBootstrapContext(BootstrapUtils.java:70)at org.springframework.test.context.TestContextManager.<init>(TestContextManager.java:105)at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTestContextManager(SpringJUnit4ClassRunner.java:152)at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.<init>(SpringJUnit4ClassRunner.java:143)at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)at java.lang.reflect.Constructor.newInstance(Constructor.java:422)at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104)at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86)at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:33)at org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:36)at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:98)at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:42)at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:234)at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:74) Caused by: java.lang.NoSuchMethodError: org.springframework.beans.BeanUtils.instantiateClass(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/Object;at org.springframework.test.context.BootstrapUtils.createCacheAwareContextLoaderDelegate(BootstrapUtils.java:98)... 19 more- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
原因是在jar包中,發現多了一個spring2.5.3的jar包,導致jar包沖突,源碼報錯,beanutil有兩個一個4.2.4的一個4.2.5的所以提示錯誤。
HTTP Status 500 - Servlet.init() for servlet mvc-dispatcher threw exception
Servlet.init() for servlet MyDispatcherServlet threw exceptiondescription The server encountered an internal error that prevented it from fulfilling this request.exception javax.servlet.ServletException: Servlet.init() for servlet MyDispatcherServlet threw exceptionorg.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1813)java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)java.lang.Thread.run(Thread.java:722)root cause org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: file [C:\ItDevelop\Tomcat7\webapps\Spring-MVC-0.0.1-SNAPSHOT\WEB-INF\classes\controller\MyController.class]; nested exception is java.lang.IncompatibleClassChangeError: class org.springframework.core.type.classreading.ClassMetadataReadingVisitor has interface org.springframework.asm.ClassVisitor as super classorg.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:281)org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:242)org.springframework.context.annotation.ComponentScanBeanDefinitionParser.parse(ComponentS- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
原因我已經不想多說什么了,因為是自己新建的WEB-INF文件夾,但是他是一個黃色的空文件夾,也就是說他不是 資源文件夾?
右鍵WEB-INF,make directory AS RESOURCE DIRECTORY
- 1
- 2
- 1
- 2
利用ajax提交表單被瀏覽器攔截修改問題
var subSucc = false;$.ajax({url : basePath + url,type : "post",dataType : "json",async : false, //此處是重點 不然異步執行會先執行下面的表單提交success : function (data) {subSucc = true;},error : function () {submitMessage("網絡異常請稍后再試", "error");},beforeSend: function () {}});if (subSucc) {$("#goPay").submit();} from: http://blog.csdn.net/u013285335/article/details/50618770總結
以上是生活随笔為你收集整理的关于错误的那点事——惨不忍睹的错误的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: intellij idea使用的准备工作
- 下一篇: 为什么Java 8中不再需要String