• 使用jersey组件向图片资源服务器上传图片报403,405,409 Method Not Allowed错误


    一.错误如下

    在使用Jersey进行图片跨服务上传时遇到了如下问题:

    二.代码如下

    1.pom.xml

      <dependency>
          <groupId>com.sun.jersey</groupId>
          <artifactId>jersey-core</artifactId>
          <version>1.18.1</version>
        </dependency>
        <dependency>
          <groupId>com.sun.jersey</groupId>
          <artifactId>jersey-client</artifactId>
          <version>1.18.1</version>
        </dependency>

    2.index.jsp:提交页面 

    1 <h3>文件上传之跨服器上传</h3>
    2     <form action="file/fileUpload3" enctype="multipart/form-data" method="post">
    3         选择文件:<input type="file" name="upload"/><br/>
    4         <input type="submit" value="上传"/>
    5     </form>

    3.springmvc.xml页面

    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
            <property name="maxUploadSize" value="104857600" />
            <property name="maxInMemorySize" value="4096" />
            <property name="defaultEncoding" value="UTF-8"></property>
        </bean>

    4.控制器代码

        @RequestMapping("/fileUpload3")
        public String fileUpload3(MultipartFile upload) throws Exception {
            System.out.println("文件跨服器上传");
            //定义上传文件服务器路径
            String path = "http://localhost:9090/uploads/";
            //说明上传文件项
            //获取上传文件的名称
            String name = upload.getOriginalFilename();
            //把文件名设置为唯一值,uuid
            String uuid = UUID.randomUUID().toString().replace("_", "");
            name = uuid + "_" + name;
            //完成上传文件,跨服器上传
            //创建客户端对象
            Client client = Client.create();
            //和图片服务器进行连接
            WebResource webResource = client.resource(path + name);
            //文件上传
            webResource.put(upload.getBytes());
            return "success";
        }

    三.解决方案

      1.找到tomcat的目录下找到/conf/web.xml文件下找到如图页面

     在里边添加如下代码:

    <init-param>
          <param-name>readonly</param-name>
          <param-value>false</param-value>
    </init-param>

    2.如果出现409或403查看上传服务器目录下是否创建对应目录。

    我的项目/target/文件目录存不存在,有时需要手动添加

  • 相关阅读:
    分布式缓存重建并发冲突和zookeeper分布式锁解决方案
    C# Datatable、DataReader等转化json
    OpenResty部署nginx及nginx+lua
    zookeeper+kafka集群的安装
    缓存数据生产服务的工作流程
    实现缓存与数据库双写一致性保障
    eclipse不提示问题
    Redis 多级缓存架构和数据库与缓存双写不一致问题
    代码这样写更优雅(Python版)
    java string.getBytes(“UTF-8”) javascript equivalent
  • 原文地址:https://www.cnblogs.com/xiaofei1/p/10929582.html
Copyright © 2020-2023  润新知