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;
}
}
|
댓글 없음:
댓글 쓰기