我有一种情况,我想从本地机器(假设文件目录是C:\ Users \ temp \ file.txt)创建一个inputStream到具有Windows Server 2008的远程服务器。
如何让网络应用程序使用该文件的本地版本,因为我在编译成WAR文件之前尝试了这个。
File f = new File("C:\Users\temp\file.txt");
当我尝试使用InputStream时,它会崩溃。我相信它是引用服务器的C:\ Users \ temp \ file.txt,它不存在。
我知道这是一个“愚蠢”的问题,但任何建议都会非常有用。
答案 0 :(得分:0)
如果您尝试从另一台计算机访问存储在一台计算机上的文件,则必须以某种方式“共享”该文件。有几种相当简单的方法可以做到这一点:
FileInputStream
。URL
或者像Apache HTTPComponents Client这样的HTTP客户端通过其URL访问该文件。 (您也可以使用此方法与FTP或其他服务。)首先,共享文件有点麻烦,但是一旦设置了共享文件系统或Web服务器,共享大量文件就很容易了。
答案 1 :(得分:-1)
在这种情况下,使用每个主机属性文件会有所帮助。通常,您希望包含环境与属性文件之间的所有差异。
查看PropertyPlaceholderConfigurer以了解处理切换属性文件。
你可以扩展它以处理{ENV}占位符并从Spring执行它,类似于
<bean id="propertyConfigurer" class="com.yourcompany.PerHostPropertiesConfigurer">
<property name="filename" value="appname-{ENV}.ini" />
</bean>
appname-LOCAL.ini中的有这个
text.filename=C:\Users\temp\file.txt
并在appname-PROD.ini中将其更改为已安装的驱动器或其他本地路径,从服务器的角度可以访问此类
text.filename=Z:\Users\temp\file.txt