我处理了在Windows系统中的Tomcat5.5服务器上运行的JSP代码。
我必须将所有JSP代码复制到linux系统中,当我执行相同的操作时,出现以下错误。
javax.servlet.ServletException: c:\tmp is not a directory
Readcsv.init(Readcsv.java:36)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
java.lang.Thread.run(Thread.java:636)
我在Windows系统中修改了没有该c:\ tmp目录的Java代码,然后重新启动了Tomcat服务器,该工具运行良好。
当我将Windows的修改后的Java代码替换为linux系统时,仍然出现相同的错误。
注意:我正在使用url从Windows访问linux服务器,http://192.168.0.85:8080/CNA/uploadcsv.jsp其中85是linux的系统号。
是否有类似tomcat的东西也必须针对Linux版本重新启动?如果是这样,该怎么做?
更新
这是我在代码中使用c:\ tmp位置的地方。
public class Readcsv extends HttpServlet {
private static final String TMP_DIR_PATH = "c:\tmp";
private File tmpDir;
private static final String DESTINATION_DIR_PATH ="/files";
private File destinationDir;
public void init(ServletConfig config) throws ServletException {
super.init(config);
tmpDir = new File(TMP_DIR_PATH);
if(!tmpDir.isDirectory()) {
throw new ServletException(TMP_DIR_PATH + " is not a directory");
}
String realPath = getServletContext().getRealPath(DESTINATION_DIR_PATH);
destinationDir = new File(realPath);
if(!destinationDir.isDirectory()) {
throw new ServletException(DESTINATION_DIR_PATH+" is not a directory");
}
}
我如何找到临时路径的替代品?目标路径工作正常。我正是从这个例子中复制了代码