问题现象如下图:
然后访问项目时,就会提示服务器内部错误。
具体报错信息:
2022-06-14 17:40:41 错误 [apusic.jsp.parser-HTTPHandler-5-47] FilePathInfo.jsp:2: Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \\ ) (_jspx\_examples\_editexcel__jsp.java:110)
2022-06-14 17:40:41 注意 [apusic.web.OfficeControlDemo./OfficeControlDemo-HTTPHandler-5-47] jsp: JSP编译错误:FilePathInfo.jsp:2: Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \\ ) (_jspx\_examples\_editexcel__jsp.java:110)
com.apusic.web.jsp.parser.ParseException: JSP编译错误。
at com.apusic.web.jsp.compiler.JspCompiler._compile(JspCompiler.java:86)
at com.apusic.web.jsp.compiler.JspCompiler.compile(JspCompiler.java:105)
at com.apusic.web.jsp.generator.JspCompilationContext.compile(JspCompilationContext.java:641)
at com.apusic.web.jsp.JspServlet$Page.load(JspServlet.java:569)
at com.apusic.web.jsp.JspServlet.service(JspServlet.java:303)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:770)
at com.apusic.web.container.ServletComponent.service(ServletComponent.java:87)
at com.apusic.web.container.WebContainer.invoke(WebContainer.java:1170)
at com.apusic.web.container.WebContainer.doProcessRequest(WebContainer.java:949)
at com.apusic.web.container.WebContainer.processRequest(WebContainer.java:814)
at com.apusic.web.http.VirtualHost.processRequest(VirtualHost.java:379)
at com.apusic.web.http.HttpServer.processRequest(HttpServer.java:317)
at com.apusic.web.http.HttpConnectionHandler.service(HttpConnectionHandler.java:26)
at com.apusic.web.http.ConnectionHandler.processRequest(ConnectionHandler.java:360)
at com.apusic.web.http.ConnectionHandler.processConnection(ConnectionHandler.java:138)
at com.apusic.web.http.ConnectionHandler.run(ConnectionHandler.java:52)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
2022-06-14 17:42:56 信息 [apusic.jsp.parser-HTTPHandler-2-44] /examples/editexcel.jsp: Parsed using character encoding 'UTF-8'
2022-06-14 17:42:56 信息 [apusic.jsp.parser-HTTPHandler-2-44] /connectionInfo.jsp: Parsed using character encoding 'utf-8'
2022-06-14 17:42:56 信息 [apusic.jsp.parser-HTTPHandler-2-44] /FilePathInfo.jsp: Parsed using character encoding 'UTF-8'
该jsp项目,原本在tomcat上部署是没有问题的,在tomcat里,这个文件的里的路径写法大致如下,路径里的\是写的:\\这样的 转义字符:并且在路径后也是可以再使用\\结尾的,
public String tempFileDir = "D:\\Program Files (x86)\\Apache Software Foundation\\Tomcat 8.0\\webapps\\officeControlDemo-Mysql\\tempFile\\" ; //临时文件目录
public String absoluteOfficeFileDir = "D:\\Program Files (x86)\\Apache Software Foundation\\Tomcat 8.0\\webapps\\officeControlDemo-Mysql\\uploadOfficeFile\\"; //office文档保存绝对路径
而经过测试,发现在金蝶中间件AAS里 windows服务器上,路径写法需为:
这样的:
public String tempFileDir = "D:/AAS-V9.0-4-1/domains/mydomain/applications/OfficeControlDemo/tempFile";
public String absoluteOfficeFileDir = "D:/AAS-V9.0-4-1/domains/mydomain/applications/OfficeControlDemo/uploadOfficeFile";
public String absoluteHtmlFileDir = "D:/AAS-V9.0-4-1/domains/mydomain/applications/OfficeControlDemo/uploadHtmlFile";
public String absolutePdfFileDir = "D:/AAS-V9.0-4-1/domains/mydomain/applications/OfficeControlDemo/uploadPdfFile";
可以看到 windows环境下,金蝶AAS的路径写法是与 tomcat下路径写法是有差异的。
这个问题记录一下,以便以后的工作。也提供其他人一种处理思路吧。