jaxrs仕様を用いたwebserviceの開発(三)
5557 ワード
RESTとは
定義:RESTは、ネット上のリソース(サービスインタフェース、メソッド、パラメータ)を正確に特定できるプログラミングスタイルです.
RESTがサポートするデータフォーマット:xml、json
RESTサポート送信方式:GET、POST
jaxrs仕様を使用したwebserviceの開発
サーバ側
エンティティークラスの作成:
クライアント
アクセス先:
http://127.0.0.1:12223/cxf_jaxrs_server/people/queryAll/
JAxrs仕様統合springによるREST形式の開発:
サーバ側の作成:
People.java上記の通り
IPeople上記
PeopleImpl上記
プロファイル:
web.xml
アクセス先:http://127.0.0.1/cxf_jaxrs_server/people/cxf_jaxrs_servser/people/query
http://127.0.0.1:8080/プロジェクト名/servlet構成のパス/xml構成のパス/インタフェースで構成されたパス/メソッド
クライアントの作成
定義:RESTは、ネット上のリソース(サービスインタフェース、メソッド、パラメータ)を正確に特定できるプログラミングスタイルです.
RESTがサポートするデータフォーマット:xml、json
RESTサポート送信方式:GET、POST
jaxrs仕様を使用したwebserviceの開発
サーバ側
エンティティークラスの作成:
@XmlRootElement(name="people")
public class People {
private int id;
private String name;
private String gender;
private Date birth;
}
インタフェース:@WebService
@Path("/people")
public interface IPeople {
@GET// , GET(POST), GET(POST)
@Produces(MediaType.APPLICATION_XML)//
@Path("/query")//@Path("/query/{id}") “/query” ,“{id}” , , “/” , “{}”
public People queryPeople();
@GET// , GET(POST), GET(POST)
@Produces(MediaType.APPLICATION_XML)//
@Path("/queryAll")
public List queryAllPeople();
}
リリースサービス:public class test {
public static void main(String[] args) {
JAXRSServerFactoryBean jaxRSServerFactoryBean=new JAXRSServerFactoryBean();
jaxRSServerFactoryBean.setAddress("http://127.0.0.1:12223/cxf_jaxrs_server");
jaxRSServerFactoryBean.setServiceClass(PeopleImpl.class);
jaxRSServerFactoryBean.setServiceBean(new PeopleImpl());
jaxRSServerFactoryBean.create();
System.out.println(" ");
}
}
クライアント
public class test {
public static void main(String[] args) throws IOException {
// : , WSDL
URL url = new URL("http://127.0.0.1:12223/cxf_jaxrs_server/people/queryAll");
// :
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
// :
//3.1 :POST
connection.setRequestMethod("GET");
//3.2 :content-type
//3.3 , connection ,
connection.setDoInput(true);
// : ,
int responseCode = connection.getResponseCode();
if(200 == responseCode){//
InputStream is = connection.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
StringBuilder sb = new StringBuilder();
String temp = null;
while(null != (temp = br.readLine())){
sb.append(temp);
}
System.out.println(sb.toString());
//dom4j ,
is.close();
isr.close();
br.close();
}
}
}
アクセス先:
http://127.0.0.1:12223/cxf_jaxrs_server/people/queryAll/
JAxrs仕様統合springによるREST形式の開発:
サーバ側の作成:
People.java上記の通り
IPeople上記
PeopleImpl上記
プロファイル:
web.xml
cxf_jaxrs_server
contextConfigLocation
classpath:ApplicationContext.xml
org.springframework.web.context.ContextLoaderListener
aaa
org.apache.cxf.transport.servlet.CXFServlet
aaa
/people/*
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
ApplicationContext.xml
アクセス先:http://127.0.0.1/cxf_jaxrs_server/people/cxf_jaxrs_servser/people/query
http://127.0.0.1:8080/プロジェクト名/servlet構成のパス/xml構成のパス/インタフェースで構成されたパス/メソッド
クライアントの作成
Document
function queryStudent(){
// XMLHttpRequest
var xhr = new XMLHttpRequest();
//
xhr.open("GET","http://localhost:8080/cxf_jaxrs_server/people/cxf_jaxrs_server/people/queryAll?_type=json",true);
//
xhr.onreadystatechange=function(){
//
if(4 == xhr.readyState && 200 == xhr.status){
alert(eval("("+xhr.responseText+")").student[0].name);
}
}
//
xhr.send(null);
}