Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在JSP页面上显示链接图像时出错_Java_Jsp_Tiles - Fatal编程技术网

Java 在JSP页面上显示链接图像时出错

Java 在JSP页面上显示链接图像时出错,java,jsp,tiles,Java,Jsp,Tiles,我有一个java web应用程序,使用嵌入式jetty作为独立程序运行。当运行在带有Java7的MacOSX上时,它的工作原理与预期完全一致。但是,在Windows7和Java7上使用相同的启动命令运行时,其中一个JSP页面出现问题。以下是JSP页面的相关部分: <nested:notEmpty property="filesList"> <nested:iterate property="filesList" indexId="i"> <t

我有一个java web应用程序,使用嵌入式jetty作为独立程序运行。当运行在带有Java7的MacOSX上时,它的工作原理与预期完全一致。但是,在Windows7和Java7上使用相同的启动命令运行时,其中一个JSP页面出现问题。以下是JSP页面的相关部分:

<nested:notEmpty property="filesList">
    <nested:iterate property="filesList" indexId="i">
        <tr>
            <td>
                <nested:write property="name"/>
            </td>
            <td>
                <nested:write property="description"/>
            </td>
            <td>
                <a href="javascript:viewHydrationFile('hydrationOperations(<%=operationName%>).filesList[<%=i%>]','show-hydration-file-content_<%=ind%>_<%=i%>','to-reload');" id="show-hydration-file-content_<%=ind%>_<%=i%>">Show</a>
                <nested:link action="/my-files/downloadHydrationFile.do" property="linkParameters">Export</nested:link>
                <nested:hidden property="viewContent" />
                <nested:equal property="viewContent" value="true">    
                    <nested:equal property="type" value="poredist">
                        <nested:define id="poredistName" property="poredistName" />
                        <div id="hydration-file-content_<%=ind%>_<%=i%>" class="to-reload file-poredist"><img src="/vcctl/image/<%=poredistName%>" /></div>
                    </nested:equal>
                   <nested:equal property="type" value="image">
                        <nested:define id="sliceName" property="sliceName" />
                        <div id="hydration-file-content_<%=ind%>_<%=i%>" class="to-reload file-image"><nested:link action="/my-files/viewImage.do" target="_blank" property="linkParameters"><img src="/vcctl/image/<%=sliceName%>" /></nested:link></div>
                    </nested:equal>
                </nested:equal>
                <nested:equal property="viewContent" value="false">
                    <nested:equal property="type" value="poredist">
                       <div id="hydration-file-content_<%=ind%>_<%=i%>" class="to-reload file-poredist"></div>
                   </nested:equal>
                   <nested:equal property="type" value="image">
                       <div id="hydration-file-content_<%=ind%>_<%=i%>" class="to-reload file-image"></div>
                   </nested:equal>
               </nested:equal>
           </td>
       </tr>
   </nested:iterate>
</nested:notEmpty>
但是,如果我随后隐藏此png文件并再次尝试显示它,则图像将被破坏,控制台上将显示以下消息:

INFO: Tiles process complete; forward to /my-files/my-hydration-files.jsp
C:\Users\bullard\AppData\Local\Temp\jetty-0.0.0.0-8080-vcctl.war-_vcctl-any-4877
14299336733721.dir\webapp\image\HydrationOf-TestPaste.img.25.000.poredist.png (T
he requested operation cannot be performed on a file with a user-mapped section
open)

我不理解最后一个错误,也无法通过网络搜索找到更多关于它的信息。任何帮助都将不胜感激。

负责生成文件的java代码试图删除该文件(如果它已经存在),然后重新生成它。错误发生在刚刚删除的文件试图作为新文件重新打开时。修改java以简单地返回文件名(如果文件名已经存在的话)可以解决这个问题,而且我认为更好的编码实践是这样的


至于为什么它以前在Mac上工作,而不是在Windows上工作,雅虎上的以下帖子提供了答案:

当你第一次读取文件时,有没有可能忘记关闭输入流或相关资源?在检查java操作代码以生成文件时,我意识到我试图删除文件,如果它已经存在,然后重新制作它。我删除了这个检查,所以现在它只返回文件名(如果它已经存在),这就解决了这个问题。不知道为什么这在Mac电脑上有效,但在Windows上无效。
INFO: Tiles process complete; forward to /my-files/my-hydration-files.jsp
C:\Users\bullard\AppData\Local\Temp\jetty-0.0.0.0-8080-vcctl.war-_vcctl-any-4877
14299336733721.dir\webapp\image\HydrationOf-TestPaste.img.25.000.poredist.png (T
he requested operation cannot be performed on a file with a user-mapped section
open)