异常总结
博客专区 > Wei911 的博客 > 博客详情
异常总结
Wei911 发表于1年前
异常总结
  • 发表于 1年前
  • 阅读 4
  • 收藏 0
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

异常总结

一、org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.ptn.uim.bean.UimServFileRecord.uimServFileDatas,

no session or session was closed

错误原因:

原因是在hibernate映射关系中由于延迟加载,session在调用前已经被关闭,,所以加载set属性时无可用session

解决方案:

在 @ManyToOne端设置fetch=FetchType.LAZY,@OneToMany端设置fetch=FetchType.EAGER,如下配置

@ManyToOne(cascade={CascadeType.REFRESH, CascadeType.MERGE}, optional=true, fetch=FetchType.LAZY)
@JoinColumn(name="uim_serv_file_record_id")
private UimServFileRecord uimServFileRecord;

                              

@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER,mappedBy="uimServFileRecord")
private Set<UimServFileData> uimServFileDatas=new HashSet<UimServFileData>();
          

二、http://java.sun.com/jsp/jstl/core cannot be resolved either web.xml or the jar files deployed whth this application

解决办法:

有其他解决办法,但是最保守的做法是将jstl.jar、standard.jar这两个jar包直接拷贝到工程的lib目录下

            

三、

List<EvdoKeyInfo> evdoKeyInfos=null;

evdoKeyInfos.add(new EvdoKeyInfo(arrs[0], arrs[1])); --->会抛出空指针异常

解决办法:

List<EvdoKeyInfo> evdoKeyInfos=new ArrayList<EvdoKeyInfo>();

evdoKeyInfos.add(new EvdoKeyInfo(arrs[0], arrs[1]));

                        

四、Could not synchronize database state with session解决方法

错误原因:

修改数据库映射实体bean时,数据库未对应更新导致的

解决办法:

此处使用hibernate.hbm2ddl.auto自动生成表结构,把oracle中的表和序列号删除,然后启动tomcat重新生成表和序列号

                      

          

五、在myeclipse中安装svn,可能先前安装的adt插件无法使用解决办法

解决办法如下:

1)、首先找到myeclipse安装目录,如我的myeclipse安装在D:\dev\目录下

2)、接着在D:\dev\MyEclipse 6.5\eclipse\configuration目录下,找到org.eclipse.update文件夹并删除此文件夹

3)、重新启动myeclipse,大功告成

                    

六、java中url带中文参数或空格导致乱码问题

解决办法如下:

new String(message.getBytes("iso-8859-1"), "gb2312");

                   

七、启动PL/SQL Developer 报字符编码不一致错误 ,报类似如下异常

Database character set (AL32UTF8) and Client character set (ZHS16GBK) are different.
Character set conversion may cause unexpected results.

Note: you can set the client character set through the NLS_LANG environment variable or the NLS_LANG registry key in
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_Oracle_10g.

解决办法如下:

打开注册表,通过命令regedit。找到文中提示的路径,发现NLS_LANG键的值为: SIMPLIFIED CHINESE_CHINA.ZHS16GBK

修改为:SIMPLIFIED CHINESE_CHINA.AL32UTF8即可

           

八、org.hibernate.HibernateException: No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional one here

这是由于没有配置事务或事务配置没成功导致的

解决办法如下:

把其中的 getCurrentSession改成 openSession 就可以使用! 很明显是因为那个allowCreate的问题,当没有事务启动的时候,getCurrentSession是无法创建Session的! 说明配置事务没有成功!

                       

九、JavaMail的java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream错误

原因:MyEclipse6.5的javaee.jar中的mail包与JavaMail包有冲突。

解决办法如下:

在MyEclipse目录下,找javaee.jar包,用WinRar打包,删除里面的mail目录,然后加入mail.jar和activition.jar

              

十、MyEclipse8.5安装插件

在Myeclipse8.5安装目录D:\dev\MyEclipse 8.5\dropins下,新建文件夹plugins 和 features ,然后把插件放到相应的文件夹下重启。

注意:如果文件夹plugins 和 features 已存在则不用新建。

                    

十一、tomcat部署项目

配置步骤如下:在D:\apache-tomcat-6.0.18\conf\Catalina\localhost(若/Catalina/localhost文件不存在则自己创建下)目录下配置部署文件,新建一个xml文件取名为DS_Trade.xml(文件名可以随意取,建议取个有意义的名字),添加如下内容:

<Context path="/DS_Trade" privileged="true" reloadable="true"   docBase="F:\workspace\DS_Trade\WebRoot"></Context>

    

十二、用java调用webservice客户端
public static void main(String[] args) throws MalformedURLException {
    SimpleService simpleService=new SimpleService();
    SimpleServicePortType type=simpleService.getSimpleServiceHttpSoap11Endpoint();
    int price=type.getPrice().getReturn();
    String greet=type.getGreeting("ljq");
    System.out.println(price+" : "+greet);
}

 

十三、设置tomcat编码

<Connector port="8080" protocol="HTTP/1.1" URIEncoding="UTF-8" 
               connectionTimeout="20000" 
               redirectPort="8443" />

特别引起我注意的是 URIEncoding="UTF-8" ,如果不设置,url上传递的中文就不能被正确解码。提醒各位使用utf-8编码的朋友注意使用tomcat的这个设置,在service.xml中配置。

           

十四、

JavaMail的java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream

java.lang.NoClassDefFoundError: com/sun/activation/registries/LogSupport错误

环境:

MyEclipse和JDK1.6环境,加入JavaMail1.4.3的jar包。

运行测试报java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream 。

原因:

MyEclipse6.5的javaee.jar中的mail包与JavaMail包有冲突。

解决:

在MyEclipse目录下,找javaee.jar包,用WinRar打包,删除里面的mail目录和activition目录,然后加入mail.jar和activition.jar

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 0
博文 63
码字总数 0
×
Wei911
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: