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


浙公网安备 33010602011771号