SpringMVC跨服务器上传文件—com.sun.jersey.api.client.UniformInterfaceException:404
发布日期:2021-06-29 11:14:37 浏览次数:3 分类:技术文章

本文共 1619 字,大约阅读时间需要 5 分钟。

SpringMVC跨服务器上传文件

1. 首先要保证上传的位置存在,否则会报409错误

  比如:我要上传到 uploads 文件夹下,那么就在 target 目录下,找到以项目名命名的文件夹,在里面创建一个 uploads 文件夹
2. 跨服务器上传文件需要用到两个 jar 包,在 maven 中导入坐标

com.sun.jersey
jersey-core
1.18.1
com.sun.jersey
jersey-client
1.18.1

3. 使用 jar 包中的类上传

public String fileUpLoad3(MultipartFile upload) throws Exception {
System.out.println("springmvc跨服务器上传文件..."); // 上传的文件路径 String path = "http://localhost:9090/uploads/"; // 获取上传文件的名字 String fileName = upload.getOriginalFilename(); String uuid = UUID.randomUUID().toString().replaceAll("-", ""); fileName = uuid + "_" + fileName; // 创建客户端的对象 Client client = Client.create(); // 和图片服务器进行连接 WebResource webResource = client.resource(path + fileName); // 上传文件 webResource.put(upload.getBytes()); return "success";}

遇到的问题

在上传文件的过程中,遇到了异常:com.sun.jersey.api.client.UniformInterfaceException: PUT http://localhost:9090/uploads/e6637912e46f449889eed6ef19f83f70_girl8.jpg returned a response status of 404 Not Found。

在这里插入图片描述
我发生这个问题的原因是:web.xml 配置文件中配置了 DispatcherServleturl-pattern/,它会把所有的路径都拦截,包括静态资源。如果有小伙伴也发生这种错误,可以检查一下自己的 web.xml 文件。

解决办法

  1. web.xml 文件删除,自然就不会出现这种问题
  2. web.xml 文件中配置采用 tomcat 默认的 servlet 解析,但是一定要配在 dispatcherServlet 的前面
default
*.jpg
dispatcherServlet
/
  1. springmvc.xml 中配置 <mvc:default-servlet-handler/>

疑惑

不知道为什么在 springmvc.xml 中配置 <mvc:resources mapping="/uploads/**" location="/uploads/"></mvc:resources> 不行,仍然报这种错误。如果有知道原因的小伙伴,请不吝赐教。

转载地址:https://blog.csdn.net/zwj_jyzl/article/details/102831924 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:linux安装FastDFS+Nginx
下一篇:The server encountered an unexpected condition that prevented it from fulfilling the request.

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月13日 12时04分27秒