AXIS2 framework로 Provider (Server), Consumer (Client)를 작성 샘플을 살펴 봅시다.
============================================================= Web Service Client 예제 ============================================================= package com.zero.test.webservice; import org.apache.axiom.om.OMAbstractFactory; import org.apache.axiom.om.OMElement; import org.apache.axiom.om.OMFactory; import org.apache.axiom.om.OMNamespace; import org.apache.axis2.Constants; import org.apache.axis2.addressing.EndpointReference; import org.apache.axis2.client.Options; import org.apache.axis2.client.ServiceClient; public class SimpleClient { // 사용할 서비스의 HTTP 주소 private static EndpointReference targetEPR = new EndpointReference ("http://localhost:8080/axis2/services /UserGuideSampleService"); public static OMElement greetUserPayload(String personToGreet) { // 서비스 콜을 위해 필요한 내용을 세팅 한다. OMFactory fac = OMAbstractFactory.getOMFactory(); // 1) 네임스페이스 지정 OMNamespace omNs = fac.createOMNamespace ("http://example1.org/example1", "example1"); // 2) 콜 할 매서드 명 설정 OMElement method = fac.createOMElement("sayHello", omNs); // 3) 콜 할 매서드의 파라메터 설정 OMElement value = fac.createOMElement("personToGreet", omNs); value.addChild(fac.createOMText(value, personToGreet)); // 4) 매서드의 파라메터를 매서드에 ADD (JDOM 이랑 같은 방식) method.addChild(value); /* * |
============================================================ Web Service Server 예제 ============================================================ package com.zero.test.webservice; import org.apache.axiom.om.OMAbstractFactory; import org.apache.axiom.om.OMElement; import org.apache.axiom.om.OMFactory; import org.apache.axiom.om.OMNamespace; import org.apache.xmlbeans.xml.stream.XMLStreamException; public class SimpleService { public OMElement sayHello(OMElement element) throws XMLStreamException { // Client 의 서비스 요청을 받음 (AXIS2 의 OMElement 형태) element.build(); element.detach(); // 받은 요청 OMElement 를 파싱하여 파라메터를 추출.(JDOM 이랑 같다고 보면 됌) String rootName = element.getLocalName(); System.out.println("Reading "+rootName+" element"); OMElement childElement = element.getFirstElement(); String personToGreet = childElement.getText(); // 파싱한 데이터를 가지고 Biz Logic 를 수행함 // Biz Logic 수행 결과를 Client 에 전송. OMFactory fac = OMAbstractFactory.getOMFactory(); OMNamespace omNs = fac.createOMNamespace("http://example1.org/example1", "example1"); OMElement method = fac.createOMElement("sayHelloResponse", omNs); OMElement value = fac.createOMElement("greeting", omNs); value.addChild(fac.createOMText(value, "Hello, "+personToGreet)); method.addChild(value); return method; } } |
댓글 없음:
댓글 쓰기