Jersey实现跨服务器上传图片:UniformInterfaceException:403 Forbidden
jersey.api.client.UniformInterfaceException :returned a response status of 403 Forbidden
图片服务器:端口8082
图片上传:
public PictureResult uploadFile(MultipartFile uploadFile) {
PictureResult result=new PictureResult();
//判断图片是否为空
if (uploadFile.isEmpty()) {
result.setError(1);
result.setMessage("图片为空");
return result;
}
//图片上传服务器
try {
//文件名称 在服务器可能重复
String newFileName=new SimpleDateFormat("yyyymmddHHmmssSSS").format(new Date());
//文件名+随机数 防止重复
Random random=new Random();
for (int i = 0; i < 3; i++) {
newFileName=newFileName +random.nextInt(10);
}
//根据日期生成目录
String path= new SimpleDateFormat("yyyy").format(new Date())+"/"
+new SimpleDateFormat("mm").format(new Date())+"/"+
new SimpleDateFormat("dd").format(new Date())+"/";
//获取文件扩展名
String suffix = FilenameUtils.getExtension(uploadFile.getOriginalFilename());
//创建jesy服务器 进行跨服务器上传
Client client = Client.create();
//把文件关联到远程服务器
String url=PIC_HOST+path+newFileName+"."+suffix;
WebResource resource = client.resource(url);
//上传
resource.put(String.class, uploadFile.getBytes());
//上传成功 响应给客户端
result.setError(0);
result.setUrl(url);
} catch (Exception e) {
e.printStackTrace();
result.setError(1);
result.setMessage("图片上传失败");
}
return result;
一直报错:
后来定位到 put的地方:
后来发现 :图片服务器的 配置下web.xml
是默认只读 不能保存的
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>true</param-value>
</init-param>
<!-- readonly Is this context "read only", so HTTP -->
<!-- commands like PUT and DELETE are --> <!-- rejected? [true]
<init-param> <param-name>readonly</param-name> <param-value>false</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
修改之后就ok了
Jersey实现跨服务器上传图片:UniformInterfaceException:403 Forbidden的更多相关文章
- jersey实现跨服务器上传
1.导入跨服务器上传文件jar文件 <dependency> <groupId>commons-io</groupId> <artifactId>com ...
- 使用jersey组件向图片资源服务器上传图片报403,405,409 Method Not Allowed错误
一.错误如下 在使用Jersey进行图片跨服务上传时遇到了如下问题: 二.代码如下 1.pom.xml <dependency> <groupId>com.sun.jersey ...
- idea 内置tomcat jersey 跨服务器 上传文件报400错误
报错内容 com.sun.jersey.api.client.UniformInterfaceException: PUT http://.jpg returned a response status ...
- Apache服务器 403 Forbidden的几种错误原因小结!
403 Forbidden错误原因详解 403 - Forbidden(禁止访问),服务器拒绝请求 - forbidden request (matches a deny filter) => ...
- 关于img 403 forbidden的一些思考
网页中经常需要显示图片给用户看,对网站本身来说有的图片是从本地图片服务器来的,但是一旦数量多了以后,磁盘空间又是一个问题. 所以有时就希望显示其他网站的Image,直接把其他网站的图片显示在我的网站上 ...
- 前后端分离跨服务器文件上传-Java SpringMVC版
近来工作上不上特别忙,加上对后台java了解一点,所以就抽时间,写了一个java版本的前后端分离的跨服务器文件上传功能,包括前后端代码. 一.Tomcat服务器部分 1.Tomcat服务器 单独复制一 ...
- ASP.NET、JAVA跨服务器远程上传文件(图片)的相关解决方案整合
一.图片提交例: A端--提交图片 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string u ...
- urllib.error.HTTPError: HTTP Error 403: Forbidden
问题: urllib.request.urlopen() 方法经常会被用来打开一个网页的源代码,然后会去分析这个页面源代码,但是对于有的网站使用这种方法时会抛出"HTTP Error 40 ...
- ueditor富文本编辑器跨域上传图片解决办法
在使用百度富文本编辑器上传图片的过程中,如果是有一台单独的图片服务器就需要将上传的图片放到图片服务器,比如在a.com的编辑器中上传图片,图片要保存到img.com,这就涉及到跨域上传图片,而在ued ...
随机推荐
- git github仓库
起因 centos 下 git到 github仓 经过 下载git yum install git -y 配置git git config --global user.name "Your ...
- 关于跨域策略文件crossdomain.xml文件
下载flexpaper源码修改后做成swf阅读器,要加入待阅读的swf文件,可以在flex里调用js的方法来获取swf文件的路径的方法,在js只专注获取路径就行,等着flex来调用:但这里会遇到一个问 ...
- Nginx(二): worker 进程处理逻辑-流程框架
Nginx 启动起来之后,会有几个进程运行:1. master 进程接收用户命令并做出响应; 2. worker 进程负责处理各网络事件,并同时接收来自master的处理协调命令: master 主要 ...
- Java数据类型之Cache模式
1.关于Java数据类型 基本数据类型 基本数据类型有8种,每种基本数据类型都有对应的引用类型. 类型 描述 长度 可表示数据 包装类型 boolean 布尔型 1 true.false Boolea ...
- Spring AOP-用代理代替繁琐逻辑
Spring AOP 基础概念 AOP 是一种面向切面的编程思想,通俗来讲,这里假如我们有多个方法. @Component public class Demo { public void say1() ...
- CTF-BugKu-加密
2020.09.12 恕我直言,上午做WeChall那个做自闭了,下午复习一下之前做过的. 做题 第一题 滴答~滴 https://ctf.bugku.com/challenges#滴答~滴 摩斯密码 ...
- Vue iview Tree组件实现文件目录-高级实现
Tree组件实现文件目录-基础实现 封装文件目录组件 src\views\folder-tree\folder-tree.vue <template> <div class=&quo ...
- Django request
''' 1.HttpRequest.GET 一个类似于字典的对象,包含 HTTP GET 的所有参数.详情请参考 QueryDict 对象. 2.HttpRequest.POST 一个类似于字典的对象 ...
- Bulldog1靶机渗透
Bulldog1靶机渗透 扫描一下内网存活主机,发现192.168.114.144这个存活主机. 进行端口扫描:23,80,8080端口均开放. 进行网页访问,暂时没有什么发现,扫一下网站的目录. 发 ...
- 用Docker swarm快速部署Nebula Graph集群
用Docker swarm快速部署Nebula Graph集群 一.前言 本文介绍如何使用 Docker Swarm 来部署 Nebula Graph 集群. 二.nebula集群搭建 2.1 环境准 ...