使用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/文件目录存不存在,有时需要手动添加

 

posted @ 2019-05-27 11:04  波比图  阅读(473)  评论(0编辑  收藏  举报