AXISでwebサービス公開

1.公開するインタフェース定義

さらさらと。

2.Ant書く

	<target name="java2wsdl">
		<axis-java2wsdl 
			output="出力先wsdl"
			location="公開するURL"
			classname="入力クラス" 
			namespace="FQDN" />
	</target>
	
	
	<target name="wsdl2java">
		<axis-wsdl2java 
			testcase="true"
			serverside="true"
			url="file:出力したwsdlファイル"
			output="サーバのクラス郡を出力するパス"
			/>
	</target>
  • axis-java2wsdlのFQDNはaxis-wsdl2javaで、出力先パッケージに使用される。
  • testcase="true"にしているのは、それがそのままサンプルクライアントとして使えるので。
  • axis-wsdl2javaはUFT-8で出力されるため、エディタがデフォルトSJISになってたりすると文字化けするので気をつけよう。
  • Collection<>がObject[]に変換されたり、DateがCalendarになったりするので、最初からCollectionは配列、DateはCalendarでインタフェース定義するのが良さそう。

3.中身を実装する。

4.web.xmlに追加

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-app_2_4.xsd"
    version="2.4">
    
    <listener>
        <listener-class>org.apache.axis.transport.http.AxisHTTPSessionListener</listener-class>
    </listener>
    
 	<servlet>
		<servlet-name>AxisServlet</servlet-name>
		<servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
	</servlet>

	<servlet>
		<servlet-name>AxisAdminServlet</servlet-name>
		<servlet-class>org.apache.axis.transport.http.AdminServlet</servlet-class>
		<load-on-startup>100</load-on-startup>
	</servlet>
  
	<servlet-mapping>
		<servlet-name>AxisServlet</servlet-name>
		<url-pattern>/webservice</url-pattern>
	</servlet-mapping>
	
	<servlet-mapping>
		<servlet-name>AxisServlet</servlet-name>
		<url-pattern>/services/*</url-pattern>
	</servlet-mapping>

	<servlet-mapping>
		<servlet-name>AxisAdminServlet</servlet-name>
		<url-pattern>/axisadmin</url-pattern>
	</servlet-mapping>
 
</web-app>

5.Tomcatにdeployするant

	<target name="deploy_webservice">
		<axis-admin
		    port="8080"
		    hostname="localhost"
		    failonerror="true"
		    servletpath="/webアプリ名/services/AdminService"
		    debug="true"
		    xmlfile="2.で作られたwsddのパス/deploy.wsdd"
		    />	
	</target>

6.TestCase動かす。

おお!動いた!!