文档章节

2013年工作中遇到的20个问题:81-100

jtn
 jtn
发布于 2015/04/13 15:09
字数 1768
阅读 3
收藏 0


81.Spring中注入Filter。
如果只是为了使用Filter,实际上可以不使用Spring的注入,直接在web.xml中配置就可以了。

现在出现了新的需求,Filter中用到了Service,需要注入进去。
web.xml配置一个
    <filter>
        <filter-name>DelegatingFilterProxy</filter-name>
        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
        <init-param>
            <param-name>targetBeanName</param-name>
            <param-value>myFilter</param-value>         //自己过滤器的名字,比如SessionFilter
        </init-param>
        <init-param>
            <param-name>targetFilterLifecycle</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>

    <filter-mapping>
        <filter-name>DelegatingFilterProxy</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

配置过滤器时,一定要注意让合法的请求可以通过。
第2天,发现Flex调用Java接口的请求被过滤了,导致Flex端无法登录。

/* 拦截所有的内容,感觉有点多。

82.Session过期。
通过配置Filter,可以方便地检查Session是否过期和用户是否登录。
但是在通过Ajax异步上传文件时,如果此时过期了,此时后台返回值,
正常情况是“正确”或“错误”,现在变成了“login页面的jsp源码”。

需要特殊处理。

关于session等权限检查问题和特殊处理ajax上传文件,待进一步研究。

83.多数据源获取Hibernate的Session失败。
 出现的异常:对象名table_name不存在。
 实际情况:目标数据库存在table_name这个表。
 
  Session session = getSessionByProjectId(projectId);
 
  多数据源的实现是通过Spring配置的。
 
  大部分功能都没有问题。
 
  在一个多线程的方法中,实现 动态获取Session,执行CRUD操作时,发现
 获取的Session总是默认的Session,而不是根据projectId获取的Session。
 
   后来,把多线程改成了单线程,就可以了。
  
   至于具体原因,不清楚。
  
   教训:尽量不使用多线程。多线程不一定会使程序运行的更快。


  
84.Spring事务回滚与Dao捕获异常。
 
   原来的代码:
   @Transactional(...配置事务)
    serviceFunction(){
       for(int index=0;index<10000;index++){
       daoFunction();
    }
    }
 
 daoFunction(){
   try{
     //access db
   }catch{
  
   }
 }
 
 问题:如果daoFunction内部发生了异常,Spring也不会回滚事务。
 改进:daoFunction不捕获异常,直接抛出。或者捕获,再抛出异常。


85.事务与内存。
   代码同上。
     for(int index=0;index<10000;index++){
       daoFunction();
    }
   
    如果dao执行1万次,再提交,可以保证这1万次在同一个事务中。
    如果发生了错误,事务回滚,保证数据正常。
   
    缺点:由于一直没有提交,导致内存占用越来越大。
    MyEclipse会自动进行垃圾回收,线上的服务器应该不会。

86.查看Hibernate的Session访问的数据库。
   在调试问题83时,想知道Session访问的数据库。
   最开始使用的是:Session.createSQLQuery("show tables").list();
   提示,语法不正确。估计是,Hibernate不支持。
  
   使用下面这个方法是可以的。
   Session.connection().getCatalog()。
  
87.加速Eclipse和MyEclipse的启动。
   每次打开Eclipse,都提示我是否需要提交一些信息给Eclipse指定的某个网站。
   实在是难以忍受,网上找到了一点技巧。
  
   首选项-General-Startup and Shutdown,把不需要的选项去掉。
   比如,MyEclipse EASIE Weblogic。

88.PhpMyadmin登录失败。
  登录phpmyadmin提示: #1045 无法登录 MySQL 服务器
 
  根本原因:管理员账号是root,不是admin。
  IE,Firefox,搜狗 3个浏览器使用admin登录几十次都失败。重新安装后,admin也失败。
  我就随手输入了个root,成功了。
  无语啊!


89.PHP sites-enabled下配置了多个类似的文件,本以为只会读取000-default,实际上
该目录下的所有文件都当作了配置文件。

90.http://42.96.184.84/fansunion改为http://42.96.184.84/后,
首页可以进去,文章和目录页面打不开,而登录功能却可以使用。

一直以为是虚拟主机没有配置好,我也很奇怪,因为81端口的虚拟主机都是好的。
后来终于发现,是固定链接需要更新。而.htaccess因为权限不够,不能自动更新。

91.ubuntu 默认面板恢复命令
   昨天裝了Ubuntu,折腾来折腾去,面板不见了,不是默认的布局了,添加面板不是解決办法。

Google 了下,解决办法如下:

打开终端,终端窗口打开之后,立即在提示符后面输入下列命令:
gconftool --recursive-unset /apps/panel
(注意:每个斜杠 “/” 后面没有空格)
接下来输入下列命令:
rm -rf ~/.gconf/apps/panel
最后还需要执行:
pkill gnome-panel
接下来,Ubuntu 默认的上下两栏面板就会恢复默认值,出现顶部+底部各一面板的默认布局。

92.在dos环境下,为了将java命令的使用帮助信息放到一个文件中,
使用标记-复制方法不行,只好换了另外一种方法。
  java>  c:\java.txt就可以了
 c盘根目录java.txt就有java的详细使用信息了。
 熟悉dos 命令的使用

93. 切换到 非C盘目录。
   需要增加 /D 参数
  cd /D J:\开发工具\Tomcat家族\apache-tomcat-6.0.35\bin

94.dos命令行复制
   a. 点击标题栏-右键菜单-编辑-标记,选中标记菜单,开始标记。
   b. 选中 黑屏中需要复制的内容,完成标记过程。
   c. 点击标题栏-右键菜单-编辑-复制,完成复制过程,然后就可以粘贴了。

95.eclipse内存不足
   Eclipse发生内存不足错误时,使用记事本修改eclipse.ini文件是个错误的方法。(换行容易发生错误)

    应该使用notepad++等编辑器打开,修改参数设置,才可以!
 
 运行程序时,报内存溢出,也有可能是Tomcat的内存不够导致的。
 
96. 环境变量
   新建环境变量JAVA_HOME ,值为C:\Program Files (x86)\Jave(末尾不能有分号)
    不需要末尾的分号,难道是因为只有一个么.

97.安装OpenCMS修改MySQL配置。
 提示MySQL的'max_allowed_packet' 太小,需要调大一点。
 修改C:\Program Files (x86)\MySQL\MySQL Server 5.5/my.ini,添加
max_allowed_packet=167772160(160M),任务管理器-服务-MySQL-重新启动就可以继续安装了。

98. 把引用到的jar包折叠起来。
  直接把一个包下的文件夹,比如src目录下的lib文件夹里的jar,全部加入到classpath中,
  这些jar包全都显示在 项目列表中,而不是在一个 文件夹下。
 
  而我期待的是 这种形式的:ReferencedJars,点击ReferencedJars,出现jar列表。
 

99.压缩文件
  JDK自带的有。
   // 声明压缩流对象
        ZipOutputStream zipOut = null;
     
            zipOut = new ZipOutputStream(new FileOutputStream(new File(
                    zipFilePath)));
            for (String file : files) {
                File file2 = new File(file);
                // 设置ZipEntry对象
                zipOut.putNextEntry(new ZipEntry(file2.getName()));
               // zipOut.setComment("www.fansunion.cn");
                zipOut.write(FileUtils.getBytesFromFile(file2));

            }
 JODD,Apache Commons Compress也可以,应该是对JDK自带类库的进一步封装。
   

100. 字符串比较 区分大小写。

  修改一个项目的名称时,把大写改为小写,提示项目名称已存在。
 
  方法一:从数据库查询出字符串与目标字符串 比较。
 
  方法二:修改数据库的信息,修改列属性的排序规则(SQLServer)。
 

相关阅读

工作问题 http://blog.csdn.net/FansUnion/article/category/1334371

 

© 著作权归作者所有

jtn

jtn

粉丝 12
博文 879
码字总数 879609
作品 0
武汉
程序员
私信 提问
ECshop 在迁移到 PHP7 时遇到的兼容性问题

在 PHP7 上安装 ECShop V2.7.3时,报错! 这个报错的原因是 PHP7 不再支持与类名相同的构造方法,构造方法统一使用 construct(), 比如下面的写法 PHP7 就会报这个错误。 回到 ecshop 我们看一...

OneAPM蓝海讯通
2016/01/29
103
0
QQ 群也能接收告警啦!团队沟通力 Up Up!

截止到昨天,你已经可以通过 OneAlert 的「排班」和「分派」功能,来对告警进行有序地分发,解决团队协作效率低的问题了。然而 OneAlert 觉得自己还可以更进一步,把团队沟通困难的问题也解决...

OneAPM蓝海讯通
2016/01/05
42
0
haproxy1.4.22请求头http1.1响应头http1.0

近来折腾haproxy,测试中发现我使用IE和curl发送请求头中为http1.1,但是haproxy的响应头是http1.0。 后来尝试1.4.22,1.4.21,1.4.19都相同效果。 不知道大家有没有遇到过这状况,怎么解决的...

stormcc
2012/10/24
2.1K
16
石家庄开源技术沙龙现场报道

时间:16号 14点 地点:河北师大软件学院 人物: 很多 ![大概去了20人左右,教室很大显得很空旷][1] 大概去了20人左右,教室很大显得很空旷 ![开篇清风分享linux][2] 开篇清风分享linux ![3...

雁南飞飞
2014/03/16
397
6
第20期JEECG架构培训班开始报名啦,每期十个名额,报名从速!

第20期开始报名啦,只招10名,报名从速啦!! 《开源社区JAVA架构师徒培训班》 Java程序员如何打破工作2,3年的瓶颈问题, 让技术更上一层楼?? 很多人做java开发2,3年后,都会感觉自己遇到瓶颈...

Jeecg
2015/10/13
92
0

没有更多内容

加载失败,请刷新页面

加载更多

Hibernate 5 的模块/包(modules/artifacts)

Hibernate 的功能被拆分成一系列的模块/包(modules/artifacts),其目的是为了对依赖进行独立(模块化)。 模块名称 说明 hibernate-core 这个是 Hibernate 的主要(main (core))模块。定义...

honeymoose
36分钟前
3
0
CSS--属性

一、溢出 当内容多,元素区域小的时候,就会产生溢出效果,默认是纵向溢出 横向溢出:在内容和容器之间再套一层容器,并且内部容器要比外部容器宽 属性:overflow/overflow-x/overflow-y 取值...

wytao1995
55分钟前
4
0
精华帖

第一章 jQuery简介 jQuery是一个JavaScript库 jQuery具备简洁的语法和跨平台的兼容性 简化了JavaScript的操作。 在页面中引入jQuery jQuery是一个JavaScript脚本库,不需要特别的安装,只需要...

流川偑
今天
6
0
语音对话英语翻译在线翻译成中文哪个方法好用

想要进行将中文翻译成英文,或者将英文翻译成中文的操作,其实有一个非常简单的工具就能够帮助完成将语音进行翻译转换的软件。 在应用市场或者百度手机助手等各大应用渠道里面就能够找到一款...

401恶户
今天
3
0
jenkins 插件下载加速最终方案

推荐做法 1、告诉jenkins 我哪些插件需要更新 jenkins插件清华大学镜像地址 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json 1.进入jenkins系统管理 2.进入插件管...

vasks
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部