如果客户端也是用java开发。
那么在开发服务端时,就可以将服务端资源先定义接口,再实现。然后将接口打包提供给客户端项目使用。
第一步:定义资源接口
public interface MovieResource {
@Put
public String uploadMovie(Movie movie) throws IOException ;
}
第二步:实现接口
public class MovieServerResource extends ServerResource implements MovieResource{
public String uploadMovie(Movie movie) throws IOException{
String result = String.format("upload movie{name:%s size:%d minutes:%d} success!" ,
movie.getName() ,
movie.getSize(),
movie.getMinutes());
return result ;
}
}
第三步:启动项目
public class MovieServer {
public static void main(String[] args) throws Exception {
Component comp = new Component() ;
comp.getServers().add(Protocol.HTTP , 8888) ;
comp.getDefaultHost().attach("/" , MovieServerResource.class) ;
comp.start();
}
}
第四步:开发客户端项目
首先将Movie.java 类与MovieResource.java接口都复制到客户端项目。
@Test
public void test02() throws IOException{
MovieResource mr = ClientResource.create("http://localhost:8080/",
MovieResource.class);
Movie movie = new Movie();
movie.setName("速度与激情6");
movie.setSize(10000000l);
movie.setMinutes(120);
String result = mr.uploadMovie(movie);
System.out.println(result );
}
这样开发客户端有点像EJB远程方法调用。