最近做web时候遇到了一些问题记录一下:
环境配置:
- docker
- tomcat
- pytorch
- conda
web部署在docker的容器上。
java调用python采用的是Runtime.getRuntime()。
Process p1 = Runtime.getRuntime()
.exec("/root/anaconda3/bin/python " + py + " -fasta " + test_fasta_path + " -word " + word_path);
InputStream is1 = p1.getErrorStream();
BufferedReader br1 = new BufferedReader(new InputStreamReader(is1));
String line1;
while ((line1 = br1.readLine()) != null) {
System.err.println(line1);
}
br1.close();
p1.waitFor();
中间遇到了很多问题。
-
因为容器的镜像带有原始的python,所以我们这里在执行命令的时候加上了路径指定自己的conda。
-
其中遇到最让人烦恼的是在本地tomcat部署调试没有问题,部署到服务器上就各种问题。
-
让人糟心的是,docker容器中的tomcat没有日志记录。
-
查了很久发现可以在宿主机外查询:docker logs 容器name|id
-
我的web的预加载文件(设置的相对路径)都是手动放在服务器下,其实还是放在eclipse工程下好(可以打包成war自动解压到tomcat下)