2011-08-16 7 views
0

에서 자바 API를 만들기 그게 내 응용 프로그램에 대해 어떻게 작동하는지.하지만 다른 사람들도 내 응용 프로그램을 사용할 수 있도록 외부 액세스를 제공 할 수 있기를 원합니다. 지금은 http://mytest.com/Process?term=test에 의해 액세스 할 수 있으며, 일단 액세스하면 result.jsp에 응답을 전달합니다. 응답은 기본적으로 다른 클래스 (Bean) 객체이며 result.jsp는 객체를 사용하여 다양한 get 메소드를 호출하여 데이터를 검색합니다.나는 다음과 같은 형식의 클래스가 자바 클래스

외부에서 사용할 수있게하려면 외부 페이지에서 사람들이 http://mytest.com/Process?term=test&request=api에 대한 요청을 보낼 수 있도록 URL에 다른 매개 변수를 도입 할 생각입니다. 그런 다음 외부 위치에서 해당 매개 변수를 확인하는 방법을 모르지만 그 방법을 모르겠습니다. 외부 클라이언트에게 응답을 되돌려 보내고 객체에 클라이언트를 보내는 것이 좋은 생각이라면 클래스에 액세스 할 수있을 것이라고 생각하지 않습니다.

답변

1

지금은 즉 API를

에이 클래스를 변환 할, 당신은 웹 서비스로 제공 할?


하지만 난 그들이 클래스에 액세스 할 수 있습니다 생각하지 않기 때문에, 클라이언트에 객체를 전송하는 것이 좋습니다 외부 클라이언트와의 경우 다시 응답을 전송하는 방법을 모른다 .

일반, 고정 및 사전 지정된 형식으로 반환하십시오. 예를 들어 JSON 또는 XML 또는 심지어 CSV입니다.

는 JSON, Gson의 도움으로 :

Bean bean = createItSomehow(); 

response.setContentType("application/json"); 
response.setCharacterEncoding("UTF-8"); 

Gson gson = new Gson(); 
response.getWriter().write(gson.toJson(bean)); 

XML, JAXB의 도움으로 :

Bean bean = createItSomehow(); 

response.setContentType("text/xml"); 
response.setCharacterEncoding("UTF-8"); 

JAXBContext context = JAXBContext.newInstance(Bean.class); 
Marshaller marshaller = context.createMarshaller(); 
marshaller.marshal(bean, response.getOutputStream()); 

자바 EE API는 필요가 없어 정확히이를 위해 JAX-WSJAX-RS API의 제공 요구 사항을 성취하기 위해 저수준 Servlet API 보일러 플레이트를 만지작 거리다.

0

다음 라이브러리를 살펴보십시오. http://www.jboss.org/resteasy. 설정하고 사용하기 쉽습니다. 이 라이브러리를 사용하여 현재 구현 위에 나머지 API 래퍼를 둘 수 있습니다. 내가 원했던 일이 있다면 알려주시겠습니까?

관련 문제