1.为什么要用Jersey框架实现应用服务器和图片服务器的分离?
现在很多的网站都会用到大量的图片,而图片是网页传输中占主要成分的数据量,也是影响网站性能的主要因素。因此很多网站都会将图片存储从网站中分离出来,另外构建一个或者多个服务器来存储图片,将图片存储到一个虚拟目录中,而网页上的图片都用一个URL地址来指向这些服务器上的图片的地址,这样的话网站的性能就明显的得到了提高,图片服务器的概念也就产生了。而且在现在的这种高并发量的网站开发过程中,服务器的集群时不可缺少的优化技术,因此也就可能存在着一个服务器上传资源,另外一台服务器进行访问资源的情况,而这种情况就会导致资源访问失败,解决的办法就是搭建一个专门的服务器用于实现文件的读写。
2. 什么是Jersey框架?
Jersey框架原理其实就是WebService。
Jersey RESTfulWebService框架是一个开源的、产品级别的JAVA框架,支持JAX-RS API并且是一个JAX-RS(JSR 311和 JSR 339)的参考实现。
Jrsey不仅仅是一个JAX-RS的参考实现,Jersey提供自己的API,其API继承自JAX-RS,提供更多的特性和功能以进一步简化RESTful service和客户端的开发
3. 如何用Jersey框架实现分离?
以下是本人使用Jersey构建简单图片服务器的过程:
1).新建一个Java项目,例如名为:jersey;然后在项目下新建lib文件,准备所需jar包
2).准备一个新的Tomcat服务器作为图片服务器,可以重新拷贝一份,然后启动;因为本来就有一个Tomcat服务器,所以需要更改新建的图片服务器的con/server.xml配置文件中的端口号。
需要更改的地方:总共有三个端口号需要修改
8005------8050、8080------8088、8009-----8090,端口号的修改可以随意,只要和已经存在的服务器不一样就ok了。
3). 通过eclipse新建一个Dynamic Web Porject ,名为image-web,在其下面新建文件夹upload,用于存储需要上传的图片,然后将这个项目通过tomcat发布,在该Tomcat的发布路径 webapps下找到这个发布的项目,剪切到相应的图片服务器的webapps下面。
4).修改图片服务器支持文件读写,在web.xml 文件中修改
在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>readonly</param-name> <param-value>false</param-value> </init-param> <init-param> <param-name>listings</param-name> <param-value>false</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> |
5).测试类
|
package cn.itcast;
import java.io.File; import java.io.IOException;
import org.apache.commons.io.FileUtils;
import com.sun.jersey.api.client.Client; import com.sun.jersey.api.client.WebResource;
public class JerseyDemo { public static void main(String[] args) throws IOException { //实例化一个jersey Client client=new Client(); //另一台服务器的请求路径 String url="http://localhost:8088/image-web/upload/qqqqq.jpg";
//设置请求路径 WebResource resource=client.resource(url); //需要添加的图片 String pathname="E:\\p1.jpg"; byte[]readFileToByteArray = FileUtils.readFileToByteArray(new File(pathname)); //发送开始 post get put resource.put(String.class,readFileToByteArray);
System.out.println("发送完毕"); } }
|
6.如果运行结果出现发送完毕,说明服务器配置成功。这只是简单的Jersey运用,限于水平有限,若有不对的地方,希望大家能够指出。
893

被折叠的 条评论
为什么被折叠?



