SSH项目开发期间遇到的问题

1.java.rmi.server.ExportException: Port already in use: 1099; nested exception is: java.net.BindExce

问题描述:

也就是说1099这个端口号已经被占用了,这个时候我也不知道是哪个程序占用了这个端口号,所以就直接杀死这个进程就好了

解决办法:

进入终端,输入命令

<-- 输出占用1099这个端口号的进程,这里看到进程号是89433  -->
bogon:~ majianghai$ lsof -i tcp:1099
COMMAND   PID       USER   FD   TYPE            DEVICE SIZE/OFF NODE NAME
java    89433 majianghai   22u  IPv6 0xacdcb7c3d1a1f95      0t0  TCP *:rmiregistry (LISTEN)
<-- 杀死该进程89433  -->
bogon:~ majianghai$ kill 89433
bogon:~ majianghai$ 

2. 解决hibernate自动建表不能输入中文的问题

创建一个新的类MySQL5DialectUTF8继承自MySQL5InnoDBDialect

public class MySQL5DialectUTF8 extends MySQL5InnoDBDialect {

    @Override
    public String getTableTypeString() {
        return " ENGINE=InnoDB DEFAULT CHARSET=utf8";
    }
}

然后将它配置到hibernate中



        
        
        
        
        
            
                
                utils.MySQL5DialectUTF8

                
                true
                true
                update
            
        

        
        
    

这样就搞定了

3. 模型list转换为json的时候,如何解决循环引用的问题

问题描述
Customer中包含saleVisits数组

// 一对多
    private Set saleVisits;

而SaleVisit中又包含customer,所以json转换的时候,出现了死循环

注意:这里使用fastjson,不要使用jsonLib了
加一个注解,这个注解会忽略掉customer这个属性,不会在json中包含,也就不会循环下去了

//表达所属客户对象 多对一
    @JSONField(serialize = false)
    private Customer customer;

你可能感兴趣的:(SSH项目开发期间遇到的问题)