axis 2 학습, ant 구축 axis 2 ws
36991 단어 axis2
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 방법 명
(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