我正在尝试编写一个servlet,每次客户端请求更新时,都必须更新我的web-apps文件夹中的xml文件。但由于该文件是一个公共资源,我在mvn:jetty服务器上获得以下erron。 我得到一个Transformer异常,它基本上说找不到该文件,因为无法对打开了用户映射部分的文件执行所请求的操作。我相信这是一个确保线程安全的Windows系统消息。
javax.xml.transform.TransformerException: java.io.FileNotFoundException: C:\User
s\Anubhav\workspace2\blogping-dist (eng)\dreamapp\src\main\webapp\xyz.xml (T
he requested operation cannot be performed on a file with a user-mapped section
open)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.getOutpu
tHandler(TransformerImpl.java:489)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transfor
m(TransformerImpl.java:298)
有哪些建议可以帮助您同步访问权限?
我查了变压器对象的瓶颈......但是没有发现它。
由于
答案 0 :(得分:3)
fileOutputStream.close()
)synchronized(lockObject)
或lock.lock()
如果每个请求都需要写入公共文件,我会质疑应用程序的设计是否良好。这是一个潜在的瓶颈,你应该尽量避免它。例如,考虑事务数据库而不是文件。