关于错误的那点事——惨不忍睹的错误

来源:互联网 发布:python 量化分析 编辑:程序博客网 时间:2024/06/03 22:55

  • 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,回去仔细看了配置文件发现。

  • 之前:
  <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">        <property name="prefix" value="/"/>        <property name="suffix" value=".jsp"/>    </bean>
  • 改正之后:
  <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">        //此处决定你到底跳转的路径        <property name="prefix" value="/WEB-INF/"/>        <property name="suffix" value=".jsp"/>    </bean>

被自己蠢哭了有木有。


页面跳转500页面问题

  • 访问jsp有的可以访问,有的直接跳转500,感觉路径没有一点问题,由于这几天刚整合了shiro,还以为是shiro的问题,搞得我把shiro官方文档看了一遍,问题没解决,shiro倒是会用了,真的是醉了,无意间发现了问题,是因为页面jsp引入的js或者css的问题,${contextPath}写成了#{contextPath},导致页面出错,才跳转的500,由于web.xml里面配置了500错误跳转的页面
  • 之前:
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xmlns="http://java.sun.com/xml/ns/javaee"         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"         version="3.0">  <error-page>        <error-code>404</error-code>        <location>/404.jsp</location>    </error-page>    <error-page>        <error-code>500</error-code>        <location>/500.jsp</location>    </error-page> </web-app>
  • 修改之后:
    <?xml version="1.0" encoding="UTF-8"?>    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"             xmlns="http://java.sun.com/xml/ns/javaee"             xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"             version="3.0">      <error-page>            <error-code>404</error-code>            <location>/404.jsp</location>        </error-page>           <!--            <error-page>            <error-code>500</error-code>            <location>/500.jsp</location>        </error-page>        -->     </web-app>

先注释掉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 …
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">        <property name="dataSource" ref="dataSource" />         <!--自动扫描mapping.xml文件-->        <property name="mapperLocations" value="classpath:com/ttc/dao/mapper/*.xml"></property>    </bean>

改正之后:

<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>

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>

js文件:

/** * 选择图片后直接上传图片 */function uploadPicture(imgId) {    $("#" + imgId).click();}

上传图片的onchange=”uploadPicture(‘imgUpload’)”方法要写在html页面的表单域里面,不然没有效果。

在idea中如果你遇到HttpServletRequest无法导入的情况

 @RequestMapping(value="/imageUpload",method = RequestMethod.POST)    public void springUpload(HttpServletRequest request) {        //  TODO    }

这种情况是因为你没有导入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);                }

修改后:

            prop = new Properties();            InputStream is = null;            try {                ClassLoader classLoader = Thread.currentThread().getContextClassLoader();                is = classLoader.getResourceAsStream(fileName);                if (is != null) {                    prop.load(is);                }

就因为我在前面加了一个/resources,结果就无法加载。

使用idea编译项目的时候遇到错误: 程序包javax.servlet不存在

原因是没有servlet-api这个包,我使用的是gradle。

dependencies {    compile(            'javax.servlet:javax.servlet-api:3.1.0'    )}

在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不满足要求,增加了一个方法然后就一直报绑定错误的问题

 @Resource    ArticleTypeMapper articleTypeMapper;

还一直有一行的波浪线说是无法注入,我就奇怪了重头检查了一边没有发现问题,最后我就去build(编译后的文件夹)去看了一下,里面的mapper.xml竟然没有更新。还是gradle没有用熟啊,又手动去刷新了一下,运行通过。

数据库插入中文显示????

id 用户名 文章 1 ??? BLOG 2 benny??? BLOG

mysql的my.ini文件已经都改成utf8了,最后找到问题是因为:

jdbc.url=jdbc:mysql://localhost:3306/blog?useUnicode=true&characterEncoding=utf8

Spring的注入问题

  • 正常情况下:
    @Autowired    @Qualifier(value = "ECPSysArgsServiceImpl")    private ECPISysArgsService sysArgsServiceImpl;

现在想要写一个公用的类,于是就要写成static了,如果直接
@Autowired
@Qualifier(value = “ECPSysArgsServiceImpl”)
private static ECPISysArgsService sysArgsServiceImpl;

这样是无法注入的,所以要采用构造器注入。

 private static ECPISysArgsService sysArgsServiceImpl;    @Autowired    public ArgsUtil(ECPISysArgsService sysArgsServiceImpl){        ArgsUtil.sysArgsServiceImpl = sysArgsServiceImpl;    }

完整代码如下:

@Service@Lazy(false)public class ArgsUtil {    private static ECPISysArgsService sysArgsServiceImpl;    @Autowired    public 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;    }}

写完发现还是注入失败,晕死,原来是忘记在类上加上注解@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.BaseResultMap    at 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

原因很明显,也很尴尬,生成的代码我没有删除直接又执行了一次,于是就在上一次的代码之上,又生成了一次,所以报代码重复问题

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

原因是在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 exception    org.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 class    org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:281)    org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:242)    org.springframework.context.annotation.ComponentScanBeanDefinitionParser.parse(ComponentS

原因我已经不想多说什么了,因为是自己新建的WEB-INF文件夹,但是他是一个黄色的空文件夹,也就是说他不是 资源文件夹
右键WEB-INF,make directory AS RESOURCE DIRECTORY

I guess the problem is with the notices-servlet.xml file. Check the "WEB-INF" folder for the ServletContext resource. Try again running the project after putting the notices-servlet.xml in the "WEB-INF" folder. Hope that will do!

利用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();                }
1 0
原创粉丝点击