以服务方式启动tomcat无法访问NFS共享盘
用startup.bat方式启动tomcat,程序的可以访问NFS共享盘的文件。但用
1).以服务的方式启动tomcat
2).或者用windows的任务计划去执行startup.bat的方式启动tomcat

以上两种方式启动tomcat,程序都无法访问NFS共享盘。
在网上找了n多的资料,心里历程如下:
eg:https://blog.csdn.net/zhya910702/article/details/46457137
不行,然后换思路,用windows任务计划,在计算机启动时自动执行startup.bat,结果还是不行。。
然后网上找了很多说是用户权限问题,然后查找用户相关,域相关、权限相关资料,各种尝试,都不行。
最终解决方案:
1.修改文件上传路径:
192.168.0.194上设置的NFS共享文件如下: tomcat服务在192.168.0.18上,将代码中文件上传下载路径E:\upload注释,替换为\\192192.168.0.194\NFS\upload

2.只做了上步还不行,还需要修改服务的登录账户,截图如下:

这个方案参考参考:https://www.iteye.com/blog/yorkyao-772389 (后面总结的三点挺好的,其截图如下)
多台tomcat主机(win2003平台)做负载均衡时,希望共享虚拟目录,没有采用同步各主机虚拟目录的方式,所以只能在文件服务器上开辟共享目录,将tomcat的context docpath指向它。tomcat主机上将共享目录映射为本地磁盘,配置如下 <Context docBase="V:\shareDir" path="/app"/> 如果是script方式(通过startup.bat),可正常启动,以服务方式启动tomcat时,总是报“Document base does not exist or is not a readable directory”,修改tomcat启动服务账户为administrator,问题依旧,怀疑服务模式下无法访问网络驱动器,将docbase指向共享目录的UNC path即远程访问方式 <Context docBase="\\192.168.1.2\shareDir" path="/app"/> 新的错误出现了,报“java.io.IOException: 登录失败: 未知的用户名或错误密码”,说明tomcat是可以通过unc path来配置context的docbase,不过当前的这个账户访问受限,奇怪的是,在当前桌面环境中是可以顺利访问\\192.168.1.2\shareDir这一路径的。联想到这组服务器都是在windows域控制环境下,以域用户登录系统并将服务启动账户改为域用户domain\administrator,问题解决。 总结: (1) tomcat可以通过unc path来配置context的docbase (2)因为映射的网络驱动器,是在用户的profile中配置, 服务模式下tomcat不能访问到网络驱动器(猜想,可能可以通过修改profile来访问网络驱动器) (3)若远程共享目录只有域用户才能访问,在启动tomcat服务时,必须指定以域用户启动服务
此网址内容

2019.12.03:
经验证,这个方案也不行。刚开始按照这个方式做是可以的。后面详细测试时,发现,下载只能下载通过这种方式上传的文件,以前上传的文件无法下载。使用startup.bat方式启动后,也不得。我是彻底懵了。
2019.12.04:
再经验证,这个方法是ok的,3号不行是因为,改后存到数据库的地址是\\\\192.168.0.18\\NFS\\upload\\..... 而改之前的地址是 E:\\upload\\...... ,故下载之前上传的文件肯定不行啊,修改数据库地址改一下就可以了。
另,采用此方案,挂载磁盘就是非必要的了。
注: 这个方案要改代码、改数据库历史数据,也不是很好的方案,但实在是找不到更好的解决方式了,网上的方式用了个遍,研究了好几天时间,都不行啊。 谁有更好的解决方法望提供下,感激不尽。
第二个方案(不推荐)
是比较hack(黑客的),参照https://blog.csdn.net/weixin_33716557/article/details/86223618
也能实现,且不需要修改代码挺好的。但关机重启后,共享盘就没了,设置了net use /persistent:yes也不起作用。
方法如下:
下载PSTools.rar,解压,然后再PSTools文件夹下黑窗执行 psexec -i -s cmd.exe。如下图:

PSTools.rar下载地址(放我网盘里了)
https://pan.baidu.com/s/1-iTrjiNNntBfWWlZh_Rcfg 提取码:8rja
以服务方式启动tomcat无法访问NFS共享盘的更多相关文章
- war包部署在tomcat下,使用windows service服务方式启动tomcat服务器,在包含调用dll的模块,报dll找不到问题的解决办法
问题描述: 开发了一个需要调用dll的java web程序,在idea开发环境下运行调试没问题,可以正常运行,在tomcat/bin下,运行批处理startup.bat,启动tomcat服务器,也可以 ...
- windows系统bat方式启动tomcat出现java.lang.OutOfmemoryError:PermGen Space 错误
1.问题情景: 在部署项目时,将两个应用部署到同一个tomcat下,通过startup.bat启动服务时,控制台出现出现java.lang.OutOfmemoryError:PermGen Space ...
- Cluster基础(一):配置iSCSI服务、编写udev规则、配置并访问NFS共享、部署Multipath多路径环境
一.配置iSCSI服务 目标: 本案例要求先搭建好一台iSCSI服务器,并将整个磁盘共享给客户端: 虚拟机添加新的磁盘 将新添加的磁盘分区并创建两个逻辑卷 逻辑卷名称分别为:/dev/myvg/isc ...
- eclipse启动tomcat无法访问
eclipse启动tomcat无法访问 症状: tomcat在eclipse里面能正常启动,而在浏览器中访问http://localhost:8080/不能访问,且报404错误.同时其他项目页面也不能 ...
- [转]eclipse启动tomcat无法访问的解决方法
这篇文章介绍了eclipse启动tomcat无法访问的解决方法,有需要的朋友可以参考一下 症状: tomcat在eclipse里面能正常启动,而在浏览器中访问http://localhost:8080 ...
- 以Windows服务方式启动MySQL,并将其默认编码设置为UTF-8
系统环境:Windows XP Professional 版本 2002 Service Pack 3 // 第1步:创建选项文件.首先下载mysql-5.5.12-win32.zip,只需复制mys ...
- Nginx以服务方式启动并用定时任务每天备份日志
1.安装Nginx以服务方式启动: a.下载 instsrv.exe.srvany.exe 以管理员方式启动CMD执行以下命令: instsrv Nginx D:\nginx\srvany.exe b ...
- 关于idea中,web项目启动tomcat,访问资源报错404
背景: web项目启动tomcat,访问相应的资源,报错404,前提资源路径是没错的. 原因: 1.确定是不是web项目 不是的话: 配置web-inf的路径和webroot(web根目录)的路径 2 ...
- 配置并访问NFS共享
NFS服务器 192.168.2.5 NFS客户机 192.168.2.100 软件包nfs-utils用来提供NFS共享服务及相关工具,而软件包rpcbind用来提供RPC协议的支持 服务器 修改/ ...
随机推荐
- learning shell check requires root privileges
[Purpose] Shell script check requires root privileges [Eevironment] Ubuntu 16.04 bas ...
- php+ajax无刷新分页原生ajax实现分页最简单完整实例-完整代码,
展示页面:index.html <html><script> function ajax_show() { // 获取当前页 var page =1; var xhr = ne ...
- csv与openpyxl函数
csv 与openpyxl函数 csv函数 常用的存储数据的方式有两种--存储成csv格式文件.存储成Excel文件(不是复制黏贴的那种) 前面,我有讲到json是特殊的字符串.其实,csv也是一种字 ...
- Stuts 文件上传
Stuts 文件上传 三种上传方案 1.上传到tomcat服务器 上传图片的存放位置与tomcat服务器的耦合度太高 2.上传到指定文件目录,添加服务器与真实目录的映射 ...
- MySQL重要知识点
可能是全网最好的MySQL重要知识点 | mp.weixin.qq.com 点击蓝色“程序猿DD”关注我 回复“资源”获取独家整理的学习资料! 标题有点标题党的意思,但希望你在看了文章之后不会有这个 ...
- Python 2 代码转 Python 3的一些转化
Python 2 代码转 Python 3的一些转化 1.“print X” 更改为“print(X)” 2.xrange改为range 3.m.itervalues() 改为 m.values() ...
- POJ-动态规划-典型问题模板
动态规划典型问题模板 一.最长上升子序列(Longest increasing subsequence) 状态(最关键):f[N]为动规数组,f[i]表示从第一个字符开始,以a[i]为最后一个字符的序 ...
- 中级java面试经历
2018年已经远去,2019年悄然而至.跳槽不仅是为了涨薪,更是为了锻炼自己,提高自己的能力.树挪死,人挪活.在一个公司呆的时间越长,就越老油条,从而失去不断前进的动力.现在下面就主要讲述我这一个月面 ...
- markdown入门基础------程序员必备技能
本人博客:https://blog.csdn.net/qq_39576571/article/details/97256521 ·首先:什么是markdown markdown是一种轻量级的标记语言, ...
- 使用预编译库PREBUILT LIBRARY官方说明
使用预编译库 NDK 支持使用预编译库(同时支持静态库和共享库).此功能有以下两个主要用例: 向第三方 NDK 开发者分发您自己的库(而不分发您的源代码). 使用您自己的库的预编译版本来提升编译速度. ...