axis 2 학습, ant 구축 axis 2 ws

36991 단어 axis2
Axis 2 학습
 1, axis 2 설치 (windows)  . 환경 수요: jdk 1.5, tomcat 6, maven 2, ant   . 다운로드 (bin 은 바 이 너 리 파일 을 표시 합 니 다):http://mirror.bjtu.edu.cn/apache//axis/axis2/java/core/1.6.2/axis2-1.6.2-bin.zip   d: / softInstall / axis 2 / 로 압축 풀기  . 환경 변수 설정: AXIS 2HOME=d:/softInstall/axis2/    path 아래 에 추가: AXIS 2HOME/bin;  . axis 2 를 설치 하 는 테스트 항목 입 니 다. 저 는 이렇게 생각 합 니 다. 즉, axis 2. war 를 얻 고 $AXIS 2 에 있 습 니 다.HOME / webapps 아래 build. xml 이 있 습 니 다.   그래서 cmd 는 $AXIS 2HOME / webapps 디 렉 터 리 에 입력: ant create. war, $AXIS 2HOME / dist 에서 생 성: axis 2. war   tomcat / webapps 아래 에 axis 2. war 를 넣 고 tomcat 를 시작 하고 접근 합 니 다.http://localhost:8080/axis2 성공 했다 는 거 야.
 2, 첫 번 째 웹 서 비 스 를 만 듭 니 다.  . 설정 되 지 않 은 웹 서비스 (ws 를 처음 만 드 는 데 사용 되 며, 가장 빠 른 시간 내 에 효 과 를 볼 수 있 습 니 다)   Hello Word. java 를 만 듭 니 다. 내용 은 다음 과 같 습 니 다.
//package xm.ws
public class HelloWord{
    public String getMessage(){
        return "this is my first aixi2 web services";
    }

    public void setMessage(String msg){
        System.out.println("message content:"+msg);
    }
}        

   Hello Word. class 컴 파일   넣 기: tomcat 아래 axis 2 / WEB - INF / services / pojo 디 렉 터 리 에 pojo 디 렉 터 리 가 없 으 면 스스로 만 듭 니 다. 그러나 이러한 자바 에는 가방 이 있 을 수 없습니다.   입력:http://localhost:8080/Axis2Test/services/listServices 아래 에서 Hello Word 의 service 를 발견 할 수 있 습 니 다.   일반적으로 위의 방법 을 사용 하 는 것 을 건의 하지 않 는 다.  . 사용자 정의 웹 서비스  . 위의 방법 package 를 취소 하고 Hello Word. class 파일 을 가 져 옵 니 다.  . 다음 디 렉 터 리 트 리 만 들 기:   d:/xmws       |- META-INF             |- services                    |- xm                    |- ws  . 위 에 있 는 가방 이 xm. ws 인 경우 Hello Word. class 를 services 아래 ws 로 복사 합 니 다.  . META - INF 아래 에 만 들 기: services. xml 내용 은 다음 과 같 습 니 다.
 1 <?xml version="1.0" encoding="UTF-8"?>
 2     <serviceGroup>
 3         <service name="helloword">
 4             <description>     axis2 web service  </description>
 5         <parameter name="ServiceClass">xm.ws.HelloWord</parameter>
 6         <messageReceivers>
 7             <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" 
 8                 class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
 9             <messageReceiver  mep="http://www.w3.org/2004/08/wsdl/in-out"  
10                 class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
11         </messageReceivers>
12     </service>
13     
14     <!--  webservice  
15     <service name="other">
16     </service>
17     -->
18 </serviceGroup>

  . services. xml 설명:
   <서비스 그룹 >: 여러 개의 웹 서 비 스 를 발표 할 수 있 습 니 다. 만약 하나의 웹 서비스 만 있다 면, < 서비스 그룹 > 노드 를 취소 할 수 있 습 니 다. <서비스 > 루트 노드 로,
   <서비스 >: 웹 서 비 스 를 발표 하 는 데 사 용 됩 니 다. 하나의 < 서비스 > 요 소 는 하나의 웹 서비스 클래스 만 발표 할 수 있 습 니 다. name 속성 은 웹 서비스 이름 을 표시 합 니 다.   예: name = "helloword", 즉 통과:http://localhost:8080/axis2/helloword?wsdl 이 서비스 에 접근 하면,   접근 방법 은?getMessage 방법 명   : 요 소 는 현재 웹 서비스의 설명 을 표시 합 니 다.   : name 속성: 마음대로 하지만 필요 한 것 이 적 으 면 안 됩 니 다.내용: 클래스 이름 을 지정 하고 가방 까지 구체 적 으로 지정 합 니 다.   : 이 요 소 는 WebService 방법 을 처리 하 는 프로 세 서 를 설정 하 는 데 사 용 됩 니 다.구체 적 인 방법 을 지정 하지 않 아 도 될 것 같 습 니 다. 시스템 에서 요청 한 방법 을 자동 으로 호출 합 니 다.   예 를 들 면:   getMessage () 방법 은 반환 값 이 있 기 때문에 입 출력 을 처리 할 수 있 는 RPCMessageReceiver 클래스 를 사용 해 야 합 니 다.   setMessage () 방법 은 값 을 되 돌려 주지 않 았 기 때문에 입력 만 처리 할 수 있 는 RPCInOnlyMessage Receiver 클래스 를 사용 해 야 합 니 다.  . 패키지 웹 서비스   cmd 명령 창 이 d: / xmws 디 렉 터 리 아래로 들 어 갑 니 다.입력: jar cvf ws. aar.   d: / ws 아래 에서 뉴스. aar 라 는 파일 을 볼 수 있 습 니 다. 이 파일 을 tomcat 아래 의 axis 2 / WEB - INF / services 아래로 복사 합 니 다.   tomcat 다시 시작, 재 방문:http://localhost:8080/axis2/helloword?wsdl  . eclipse 아래 axis 2 웹 프로젝트 구축
   (1) 다음 방법 은 axis 2 포 서 디 렉 터 리 와 웹 프로젝트 의 포 서 디 렉 터 리 를 인식 하 는 데 도움 이 된다.
    . 새 웹 항목: xmWSTest | - src |- xm.dao    |- xm.dao.impl    |- xm.services    |- xm.ws      |- MyWebServices.java    |- xm.util  . axis 2. war / WEB - INF 아래 의 모든 파일 과 폴 더 를 xmWSTest / webContent / WEB - INF 아래 에 복사 합 니 다.    axis 2. war / axis 2 - web 폴 더 및 파일 을 xmWSTest / webContent / 아래로 복사 합 니 다.    xmWSTestr 프로젝트 의 WEB - INF 아래 에는 적어도 다음 과 같은 디 렉 터 리 가 있 습 니 다: | - WEB - INF | - classes (프로젝트 의 class 파일) | - conf (axis 2. xml 설정 파일) | - axis 2. xml | - lib     (항목 참조 가방, 이것 은 모두 가 알 고 있 습 니 다. axis 2 가방 도 여기에 놓 습 니 다) | - modules (axis 2 원래 있 습 니 다. 복사 하면 있 습 니 다) | - services (생 성 된 ws 의 aar 가방 을 놓 습 니 다) | - services. list (기본 값) | - version. aar (기본 값)| - 웹. xml (axis 2 아래 웹. xml 이 어야 합 니 다. 다른 설정 이 필요 하 다 면 직접 추가 할 수 있 습 니 다) 웹. xml 설정 은 다음 과 같 습 니 다.
 1  <!--    :    :/services/*   *.jws  url           ws  -->
 2   <servlet>
 3     <display-name>Apache-Axis Servlet</display-name>
 4     <servlet-name>AxisServlet</servlet-name>
 5     <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
 6   </servlet>
 7   <servlet-mapping>
 8     <servlet-name>AxisServlet</servlet-name>
 9     <url-pattern>/servlet/AxisServlet</url-pattern>
10   </servlet-mapping>
11   <servlet-mapping>
12     <servlet-name>AxisServlet</servlet-name>
13     <url-pattern>*.jws</url-pattern>
14   </servlet-mapping>
15   <servlet-mapping>
16     <servlet-name>AxisServlet</servlet-name>
17     <url-pattern>/services/*</url-pattern>
18   </servlet-mapping>
19   
20   <!--           /axis2-admin/*  url  ,        axis2       ,
21             ,axis2.xml,axis2.policy。          axis2/conf    ,  
22         WEB-INF/conf   
23   -->
24   <servlet>
25     <display-name>Apache-Axis Admin Servlet Web Admin</display-name>
26     <servlet-name>AxisAdminServlet</servlet-name>
27     <servlet-class>org.apache.axis2.transport.http.AxisAdminServlet</servlet-class>
28     <load-on-startup>100</load-on-startup>
29   </servlet>
30   <servlet-mapping>
31     <servlet-name>AxisAdminServlet</servlet-name>
32     <url-pattern>/axis2-admin/*</url-pattern>
33   </servlet-mapping>

  . 다음은 위 에 뉴스. aar 를 포장 하 는 디 렉 터 리 트 리 를 구축 하고 WEB - INF 아래 에 새로 만 듭 니 다: classes 폴 더, 컴 파일 된 class 파일 아래 에 빠 른 속도 로 발표 할 수 있 습 니 다.   방법: 오른쪽 키 항목 이름 -- > Build Path - - > Configure Build Path - - > Source 옵션 맨 아래: Default output folder    -->Browse, 새 classes 디 렉 터 리 아래 에 지정 하기;  . 다음은 services 폴 더 아래 에 새로 만 듭 니 다: (아래) | - MyWebServices (자신의 프로젝트 아래 에 자신 이 쓴 웹 서비스 클래스 와 같은 이름) | - META - INF | - services. xml services. xml 파일 내용 은 다음 과 같 습 니 다.
 1 <service name="figur8WebService" >
 2     <Description>
 3         Please Type your service description here(       webservices   ,            )
 4     </Description>
 5     <messageReceivers>
 6         <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
 7         <messageReceiver  mep="http://www.w3.org/2004/08/wsdl/in-out"  class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
 8     </messageReceivers>
 9     <!--    web services     -->
10     <parameter name="ServiceClass" locked="false">xm.ws.MyWebServices</parameter>
11 </service>

 
  . 위 와 같은 설정 을 한 후, 바로 tomcat 에서 실행 할 수 있 습 니 다.   http://localhost:8080/xmWSTest/services/MyWebServices?wsdl (2) 위의 방법 을 통 해 우 리 는 ant 를 직접 사용 하여 모든 일 을 해결 할 수 있 습 니 다!  준비: WEB - INF 아래 에 새로 만 들 기: services - MyWebServices. xml  내용: 위 와 같다 
 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project name="xmWS" default="compile" basedir=".">
 3     <property name="tempDir" value="${basedir}/webContent/temp" />
 4     <!--  axis2     -->
 5     <property name="axis2_home" value="D:/lib/axis2/axis2-1.6.2-bin/axis2-1.6.2" />
 6     <!--web Service Name-->
 7     <property name="servicesName" value="MyWebServices" />
 8     
 9     <target name="compile" depends = "prepared">
10         <!-- java compile to classes -->
11         <javac srcdir="${basedir}/src" destdir="${basedir}/webContent/WEB-INF/classes/" 
12                 includeantruntime="true" memoryMaximumSize="256m" fork="true">
13         <!-- <compilerarg line="-encoding UTF-8 "/> 
14          -->
15             <classpath refid="refjar"/>
16         </javac>
17     </target>
18     
19     <target name="prepared">
20         <!---->
21         <!-- axis2_home    axix2-web    -->
22         <mkdir dir="${basedir}/webContent/axis2-web" />
23         <copy todir="${basedir}/webContent/axis2-web" overwrite="true">
24             <fileset dir="${axis2_home}/webapp/axis2-web" />
25         </copy>
26         
27         <!-- axis2_home    conf          WEB-INF/ -->
28         <mkdir dir="${basedir}/webContent/WEB-INF/conf" />
29         <copy todir="${basedir}/webContent/WEB-INF/conf" overwrite="true">
30             <fileset dir="${axis2_home}/conf" />
31         </copy>
32         
33         <!-- axis2_home    lib WEB-INF/lib    -->
34         <copy todir="${basedir}/webContent/WEB-INF/lib" overwrite="true">
35             <fileset dir="${axis2_home}/lib" />
36         </copy>
37         
38         <!--  modules  WEB-INF  -->
39         <mkdir dir="${basedir}/webContent/WEB-INF/modules" />
40         <copy todir="${basedir}/webContent/WEB-INF/modules" overwrite="true">
41             <fileset dir="${axis2_home}/repository/modules" />
42         </copy>
43         
44         <!--  axis2_home   url       lib   -->
45         <mkdir dir="${basedir}/webContent/WEB-INF/classes" />
46         <copy todir="${basedir}/webContent/WEB-INF/classes" overwrite="true">
47             <fileset dir="${axis2_home}/webapp/WEB-INF/classes" />
48         </copy>
49         
50         <!-- 
51         <jar destfile="${basedir}/webContent/WEB-INF/lib/xm_axis2_urlmapping.jar"
52             basedir="${axis2_home}/webapp/WEB-INF/classes" >
53         </jar>
54          -->
55          
56         <!--    web Service     -->
57         <mkdir dir="${basedir}/webContent/WEB-INF/services" />
58         <mkdir dir="${basedir}/webContent/WEB-INF/services/${servicesName}" />
59         <mkdir dir="${basedir}/webContent/WEB-INF/services/${servicesName}/META-INF" />
60         <!--  services-wsname.xml    META-INF -->
61         <copy file="${basedir}/webContent/WEB-INF/services-${servicesName}.xml" 
62             tofile="${basedir}/webContent/WEB-INF/services/${servicesName}/META-INF/services.xml"
63         />
64         
65         <copy todir="${basedir}/webContent/WEB-INF/services/${servicesName}" overwrite="true">
66             <fileset dir="${axis2_home}/repository/services" />
67         </copy>
68         
69     </target>
70     
71     <path id="refjar">
72         <fileset dir="${basedir}/webContent/WEB-INF/lib">
73             <include name="**/*.jar"></include>
74         </fileset>
75     </path>
76         
77 </project>

 
  명령 창 을 열 고 프로젝트 디 렉 터 리 아래 에 위치 하고 명령 을 실행 합 니 다: ant  eclipse 에서 항목 을 직접 배치 하고 실행 합 니 다.  브 라 우 저 에 입력:http://localhost:8080/xmWSTest/services/MyWebServices?wsdl

좋은 웹페이지 즐겨찾기