SSH项目开发期间遇到的问题
2018-08-24 本文已影响0人
编程_书恨少
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中
<bean name="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
<!-- 将连接池注入到sessionFactory, hibernate会通过连接池获得连接 -->
<property name="dataSource" ref="dataSource"></property>
<!-- 配置hibernate基本信息 -->
<property name="hibernateProperties">
<props>
<!-- 必选配置 -->
<prop key="hibernate.dialect">utils.MySQL5DialectUTF8</prop>
<!--可选配置-->
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
<!-- 引入orm元数据,指定orm元数据所在的包路径,spring会自动读取包中的所有配置 -->
<property name="mappingDirectoryLocations" value="classpath:domain"></property>
</bean>
这样就搞定了
3. 模型list转换为json的时候,如何解决循环引用的问题
问题描述
Customer中包含saleVisits数组
// 一对多
private Set<SaleVisit> saleVisits;
而SaleVisit中又包含customer,所以json转换的时候,出现了死循环
注意:这里使用fastjson,不要使用jsonLib了
加一个注解,这个注解会忽略掉customer这个属性,不会在json中包含,也就不会循环下去了
//表达所属客户对象 多对一
@JSONField(serialize = false)
private Customer customer;