1、springboot+jsp项目搭建,部署

1、项目搭建
在github上下载spring-boot源码,
spring-boot-1.3.2.RELEASE\spring-boot-samples\spring-boot-sample-web-jsp
这个项目就是spring boot 对jsp的支持

2、项目部署
由于是spring boot对jsp的支持,jar启动方式只在本地有效,在服务器上无效,所以部署时还是打成war包,跟传统的web项目一样,放在tomcat中运行,本项目用的是 jdk8+tomcat8
(1)tomcat中修改端口号,配置jdk路径
(2)启动

3、几个错误
(1)tomcat启动报错,can not load amd64
jdk用了32位和tomcat用了64位,版本不匹配

(2)linux上有多个jdk,多个tomcat,要为自己的tomcat指定jdk版本
tomat路径/bin/catalina.out, 在第一行添加:

export JAVA_HOME=/usr/java8

(3)jstl scope配置错误,设置成了provided,导致WEB-INF/lib包中没有 jstl-1.2.jar包
[java.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.classes.views.index_jsp]
参考链接:http://www.cnblogs.com/bruceChan0018/p/5851828.html
正确配置如下:

        
            jstl
            jstl
            1.2
        
        
            javax.servlet
            servlet-api
            2.5
            provided
        
        
            javax.servlet.jsp
            jsp-api
            2.1
            provided
        

4、知识点总结
(1)测试环境是aix6.1,unix下 tar.gz 解压命令跟linux下不同
linux解压tar.gz为:tar -zvxf file.tar.gz
unix 命令

压缩  # tar cvf - folder | gzip > filename.tar.gz
解压  # gunzip -c filename.tar.gz | tar -xvf -

(2)关闭端口

#netstat -Aan|grep 23
f1000200019ce398 tcp 0 0 *.23 *.* LISTEN
#rmsock f1000200019ce398 tcpcb
The socket 0x19ce008 is being held by proccess 185006 (inetd).
#kill -9 185006

(3)java web项目 把文件放到于根目录平行的以用户名命名的文件夹下
不能把文件放在项目的resource目录下,因为war更换,重启等会导致文件丢失

  • 获取web项目根路径,即发布到tomcat的webapp下的项目名
  • 新建文件夹
  • 获取输出流,写文件
// 项目根路径
String path = session.getServletContext().getRealPath("/");
File pathFile = new File(path + "../" + user.getRealname());
pathFile.mkdir();
logger.info("创建一个以用户名为真实名字的文件夹, pathFile:" + pathFile.getPath());
File saveFile = new File(pathFile + "/" + fileNameAll);
inputStream = (ByteArrayInputStream) multiReq.getFile("file").getInputStream();
outputStream = new FileOutputStream(saveFile);
........

你可能感兴趣的:(1、springboot+jsp项目搭建,部署)