웹 서비스의 axis 2 설정 (기 존 항목)

1. 다운로드 및 공식 문서    http://ws.apache.org/axis2
2. 현재 프로젝트 설정 axis 2    1)web.xml       
          <servlet>
                <display-name>Apache-Axis Servlet</display-name>
                <servlet-name>AxisServlet</servlet-name>
                <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
                <load-on-startup>1</load-on-startup>
           </servlet>
           <servlet-mapping>
                <servlet-name>AxisServlet</servlet-name>
                <url-pattern>/services/*</url-pattern>
           </servlet-mapping>

  
     2) 관련 파일 복사          공식 적 으로 war 패 키 지 를 다운로드 하여 압축 을 풀 고 / WEB - INF / lib, / WEB - INF / conf, / WEB - INF / modules 를 기 존 항목 으로 복사 합 니 다.         기 존 프로젝트 에서 / WEB - INF / services / my domain / META - INF / services. xml 프로필 을 만 듭 니 다. 내용 은 다음 과 같 습 니 다.         
        <serviceGroup>
               <service name="HelloWorldService">
               <description>Hello World Service</description>
               <parameter name="ServiceClass" locked="false">
                              example.HelloWorldService
               </parameter>
               <operation name="hello">
               <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver" />
               </operation>
               </service>
          </serviceGroup>

 
 
      3) 서비스 예:
 
package example;

import java.util.ArrayList;
import java.util.List;

import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;

/**
* @author an_chuantong
* @version created:Aug 30, 2008 6:15:14 PM
*          
*/

public class HelloWorldService {

public HelloWorldService() {
}

public OMElement hello(OMElement in) {
   String name = in.getText();
   System.out.println("name:" + name);
   System.out.println("in:" + in.getLocalName());
   OMNamespace omN=in.getNamespace();
   System.out.println("getNamespaceURI:" +omN.getNamespaceURI());
   OMFactory fac = OMAbstractFactory.getOMFactory();
   // OMNamespace   SOAP      。
   OMNamespace omNs = fac.createOMNamespace("http://helloworld.com/", "hw");
   //     sayHello,     omNs        。
   OMElement resp = fac.createOMElement("helloResponse", omNs);
   //          。
   resp.setText("  "+name);
   List list = new ArrayList();
   list.add("act");
   list.add("anc");
   list.add("  ");
   return resp;
}


 
         http://localhost:8080/mydomain/services/HelloWorldService?wsdl 접근 을 통 해 wdl 정 보 를 표시 할 수 있다 면 설정 되 었 습 니 다.
4) 클 라 이언 트 테스트  
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.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;

public class TestClient {

// targetEPR     Service(.aar  )         。
private static EndpointReference targetEPR = new EndpointReference("http://localhost:8080/mydomain/services/HelloWorldService?wsdl");

public static OMElement getSayHelloOMElement() {
   //   request SOAP 。
   OMFactory fac = OMAbstractFactory.getOMFactory();
   // OMNamespace   SOAP      。
   OMNamespace omNs = fac.createOMNamespace("http://helloworld.com/", "hw");
   //     sayHello,     omNs        。
   OMElement method = fac.createOMElement("hello", omNs);
   //          。
   method.setText("ZJ");

   return method;
}

public static void main(String[] args) {
   try {
    Options options = new Options();
    options.setTo(targetEPR);
    ServiceClient sender = new ServiceClient();
    sender.setOptions(options);
    OMElement sayHello = TestClient.getSayHelloOMElement();
    //   request SOAP,
    //          sayHello          result。
    //   services.xml     sayHello       。
    OMElement result = sender.sendReceive(sayHello);
   
    System.out.println(result);
if (result != null) {
     Iterator iterator = result.getChildElements();
     while (iterator.hasNext()) {
      OMElement o = (OMElement) iterator.next();
      System.out.println(o.getText());
     }
    }
   } catch (Exception axisFault) {
    axisFault.printStackTrace();
   }
}
}


 4. jsp 클 라 이언 트: jsp 와 독립 프로그램의 차 이 는 ServiceClient 의 구조 방식 에 있다.
import org.apache.axis2.Constants;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.context.ConfigurationContextFactory;

 

 

  options.setTransportInProtocol(Constants.TRANSPORT_HTTP);// http    
 ConfigurationContext configctx            = ConfigurationContextFactory.createConfigurationContextFromFileSystem(null, null);
  ServiceClient sender = new ServiceClient(configctx, null);
  

좋은 웹페이지 즐겨찾기