gpt4 book ai didi

java - Tomcat 拒绝访问域上的共享目录

转载 作者:行者123 更新时间:2023-11-28 22:57:23 24 4
gpt4 key购买 nike

我编写了一个 Tomcat 应用程序,用于提供位于网络(域)目录中的 pdf。它在我的本地笔记本电脑上工作,但是当我将它部署到 tomcat 服务器(作为服务安装)时,我得到访问被拒绝。帮助台确实使用运行 Tomcat 的服务器名称设置了具有读取和执行权限的共享目录,但它仍然不起作用。它在我的笔记本电脑上工作,因为我登录到域,但由于 Tomcat 作为服务运行,我假设身份验证没有被处理,但我认为授予 Tomcat 服务器权限可以解决这个问题。 Tomcat 服务器和共享目录都在同一个域中。还有其他人遇到过这个问题吗?

帮助台说他们可以设置一个我可以登录的服务帐户,但我不确定如何在我的应用程序中进行编码。

错误:

java.io.FileNotFoundException: \\server\directory\file.pdf (Access is denied)
java.io.FileInputStream.open(Native Method)
java.io.FileInputStream.<init>(Unknown Source)
com.strateproc.controller.LoadPDFServlet.doPost(LoadPDFServlet.java:58)
javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

小服务程序:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

int processID = Integer.parseInt(request.getParameter("processID"));

response.setHeader("Expires", "0");
response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
response.setHeader("Pragma", "public");
response.setContentType("application/pdf");

// get filename from process id
Eprocess process = DBMain.getProcessFromId(processID);

// get pdf
String contextPath = PROCESS_DIRECTORY + process.getFileName();
InputStream in = new FileInputStream(contextPath);

// get output steam
OutputStream out = response.getOutputStream();

// Copy the bits from instream to outstream
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
in.close();
}

最佳答案

获取帮助台以设置服务帐户,然后配置您的 Tomcat 服务(通过提供的控制面板应用程序或通过标准的 Windows 服务控制面板)以作为该服务登录。

关于java - Tomcat 拒绝访问域上的共享目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24294577/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com