当前位置: 首页 > 知识库问答 >
问题:

图像无法写入spring的资源文件夹

刘嘉木
2023-03-14

这是我的服务方法

public void CapchaString() {
                 String capchaString = UUID.randomUUID().toString();
    //         ByteArrayInputStream bais = new ByteArrayInputStream(capchaString.getBytes());
                            try {
                               BufferedImage bi=new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB);
                               Graphics g = bi.getGraphics();
                               g.drawString(capchaString, 10, 10);
                              /* File outputfile = new File("src/main/resources/output.png");*/
                               ImageOutputStream out = new FileImageOutputStream(new File("C:/Users/Saurabh/Documents/Agile maple code/JavaJ2eeTraining/src/main/resources/output.png")); 
                               ImageIO.write(bi, "png", out);

                           } catch (IOException e) {
                               throw new RuntimeException(e);
                           }


            }
    }

这是我的控制器方法

@ResponseBody
@RequestMapping(value="/photo2", method = RequestMethod.GET, produces = MediaType.IMAGE_JPEG_VALUE)
public byte[] testphoto() throws IOException {
    capchaService.CapchaString();
    Resource resource = loader.getResource("output.png");

           ImageIO.createImageInputStream(resource.getFile());
    InputStream is = new BufferedInputStream(new FileInputStream(resource.getFile()));
    return IOUtils.toByteArray(is);
}

当我使用我的服务器时,我会得到HTTP状态500类路径资源[output.png]无法解析为URL,因为它不存在

共有1个答案

姜俊民
2023-03-14

您确实需要了解webapp是如何工作的:

  1. 您可以设置开发环境并创建源代码。src/main/resources是此开发环境的一部分。
  2. 编译源代码并将其组装到war文件或分解的war目录
  3. 您将war文件部署到服务器,服务器从war文件加载类和资源。而不是从您的开发环境中。

在生产中,您所拥有的只有服务器,war文件部署在那里。服务器上没有开发环境。生产服务器可能是linux服务器,其中c:/users/saurabh/这样的路径甚至没有意义。即使是windows计算机,该目录也不存在。即使存在,webapp也不是从那里加载资源,而是从部署的war文件加载资源,该文件是只读的。

 类似资料:
  • 我对javafx非常陌生,而且已经学会了使用代码教程进行测试时: 异常是由第行

  • 出于某种原因,我一直在GradleJavaFX项目中获得NPE。 我的文件夹结构非常基本。我在文件夹中有一个包含java文件的包。我的资源也在文件夹中。当我尝试加载它给了我一个NPE。 这是一个助手类。 从我调用:

  • 问题内容: 我正在尝试在资源文件夹中写入.txt文件,但是它什么也没写。我可以通过执行以下操作读取相同的.txt文件: 但是当涉及到写作时,我尝试做: 关于如何在该文件夹中写任何建议? 问题答案: 假设您将资源打包为jar,则无法将任何内容写入资源。Jar只。您无法更新。您可以提取和编辑内容。 您可以尝试使用偏好设置作为替代

  • 图像资源又经常被称作贴图、图片,是游戏中绝大部分图像渲染的数据源。图像资源一般由图像处理软件(比如 Photoshop,Windows 上自带的画图)制作而成并输出成 Cocos Creator 3D可以使用的文件格式,目前包括 JPG 和 PNG 两种。 导入图像资源 使用默认的资源导入方式就可以将图像资源导入到项目中,之后我们就可以在 资源管理器 中看到如下图所示的图像资源。 图像资源的类型

  • 问题内容: 我正在尝试从applet编写示例文件,但无法正常工作。下面是代码。 小程序 的HTML 我也没有得到任何错误。请指教。 问题答案: 这是因为小程序位于其自己的沙箱中,在沙箱中它们需要特殊权限才能执行某些操作,例如读取或写入客户端计算机的磁盘。记住,小程序是在客户端计算机的上下文中执行的,它们是客人并且需要遵循内部规则 查看小程序可以做什么和不能做什么以获取更多详细信息

  • 理想情况下,我想在localhost上记录开发过程中的一切,只记录实时服务器上的错误。我在我的开发平台(Windows 10,JavaWicket)上无法登录文件。 log4j2.xml 我已经设法得到一些日志写入我tomcat的文件夹。 只有我的一些信息出现了。我不知道什么符号有意义,什么符号没有意义。 可公开访问页面的基页记录子类。 [信息]2017-10-19 17:07:13.208[ht