【服务器相关】项目部署后问题汇总

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/feng_zhiyu/article/details/86707618

写在前面

最近做了两个Java Web项目【微信公众号开发】,一个设计时间花了大半,编码没用很久,其他的都用在测试上了;另外一个设计(设计也总在改,🤦‍),大部分时间都花在测试上了。 碰到了不少的坑,这里就自己记录的服务器相关的写下来,方便查看吧。

问题一、tomcat端口占用

方法一:

netstat -nltp | grep 8005
Netstat -nltp | grep 8080
杀掉占用端口的进程

方法二:

$JAVA_HOME/jre/lib/security/Java.security 文件中 securerandom.source 配置项
securerandom.source=file:/dev/random
改为:
securerandom.source=file:/dev/urandom

Linux服务器中查看java的安装路径
https://www.cnblogs.com/jasonzeng/p/8302171.html

问题二.tomcat服务器假死(崩溃)

症状:访问网站时,所有静态资源可以访问,凡是需要从数据库获取的数据全部无法加载出来。

具体情况:点击页面欲加载数据,页面没有反应,依然只有静态资源显示,但服务器日志没有报错

原因:

openSession创建session时autoCloseSessionEnabled参数为false,即在事物结束后不会自动关闭session,需要手动关闭,如果不关闭将导致session关联的数据库连接无法释放,最后资源耗尽而使程序宕掉。    
getCurrentSession创建session时autoCloseSessionEnabled,flushBeforeCompletionEnabled都为true,并且session会同sessionFactory组成一个map以sessionFactory为主键绑定到当前线程。
getCurrentSession():从上下文(配置文件current_session_context_class: thread 使用Connection自动管理;jta(java transaction api) 由Application Server提供的分布式事务管理,Tomcat本身不具备此能力,JBoss、WebLogic具备)找,如果有,则用旧的,否则创建新的,事务提交自动Close;

总之, getCurrentSession () 使用当前的session
openSession() 重新建立一个新的session
而后端代码DAO层使用了getSessionFactory().openSession(),这种写法每次都会建立一个新的连接,但是需要手动关闭close(),没有关闭最后导致资源耗尽而宕机;而getSessionFactory().getCurrentSession()会在上下文中找到一个连接,如果没有则新建,并且用完后会自动关闭。

解决方法:将openSession()改成getCurrentSession()

建议:在一个应用程序中,如果DAO 层使用Spring 的hibernate 模板,通过Spring 来控制session 的生命周期,则首选getCurrentSession ()。

问题三:

重启防火墙后的重定向就失效了!!!

404页面如下:

在这里插入图片描述

原因:

未开启防火墙端口;

查看网上的资料是防火墙把端口拦截了,然而并不是。。 弄了半天,就是tomcat卡死然后杀掉进程,重启tomcat就可以了。。

思考:为什么重定向失效出现上面的404页面?

这可能又是一个坑。

展开阅读全文

项目部署服务器问题

03-15

500 Servlet Exceptionrnrn[show] org.springframework.beans.factory.NoSuchBeanDefinitionException: No beanrnnamed 'sessionFactory' is definedrnrnorg.springframework.beans.factory.NoSuchBeanDefinitionException: No beanrnnamed 'sessionFactory' is definedrn at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:360)rn at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedBeanDefinition(AbstractBeanFactory.java:914)rn at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:241)rn at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)rn at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:761)rn at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.lookupSessionFactory(OpenSessionInViewFilter.java:243)rn at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.lookupSessionFactory(OpenSessionInViewFilter.java:227)rn at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:171)rn at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)rn at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87)rn at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)rn at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)rn at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87)rn at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:187)rn at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:265)rn at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:273)rn at com.caucho.server.port.TcpConnection.run(TcpConnection.java:682)rn at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:743)rn at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:662)rn at java.lang.Thread.run(Thread.java:619)rn 论坛

没有更多推荐了,返回首页