VisualStudio.NETでWebサービスを作成するのは、とても簡単です。それに比べると、AXISでのWebサービス作成は、CUIだったりコマンドオプションが複雑だったりして、やや面倒です。[[GUIツールを自作:http://cropcrusher.web.infoseek.co.jp/shufujava/wserv/java2wdslgui.html]]されている方もいますね。
※ ちなみに、AXISでもJWS(○Java WebService、×Java Web Start)ならば、機能が限定されますけど、Javaクラスを書くだけでインスタントにWebサービスが作れますね。
私も自作しようかと思ってたんですが、eclipse + antを使うことである程度楽になるので、これでいいやってことで、まとめておきます。
+eclipseのAntランタイムのクラスパスにAXISのjarファイルを登録します。
#ref(AntLib.png,center,nolink);
#br
+axis-ant.jarのaxis-tasks.propertiesには、以下のAntタスクが記載されており、これを使います。
axis-wsdl2java=org.apache.axis.tools.ant.wsdl.Wsdl2javaAntTask
axis-java2wsdl=org.apache.axis.tools.ant.wsdl.Java2WsdlAntTask
axis-admin=org.apache.axis.tools.ant.axis.AdminClientTask
+build.xml(なければ作る)に以下のようにタスクを追加。(内容サンプルは[[QuizML]]より)
<taskdef resource="axis-tasks.properties" />
…
<target name="makeWS">
<axis-java2wsdl output="${dist}/WEB-INF/Quiz.wsdl"
className="jomora.quiz.Quiz"
namespace="urn:Quiz"
location="http://localhost:8080/quiz/services/QuizService">
<mapping namespace="urn:Quiz" package="jomora.quiz"/>
</axis-java2wsdl>
<axis-wsdl2java url="${dist}/WEB-INF/Quiz.wsdl"
output="${project.dir}/src"
deployscope="application"
serverSide="yes"
skeletonDeploy="yes"
noimports="no"
verbose="no"
testcase="yes">
<mapping namespace="urn:Quiz" package="jomora.quiz"/>
</axis-wsdl2java>
<axis-admin
port="8080"
hostname="localhost"
failonerror="true"
servletpath="${module}/services/AdminService"
debug="true"
xmlfile="${project.dir}/src/jomora/quiz/deploy.wsdd"
/>
</target>
+後は、Webサービスとなるインターフェースを作って(このクラスは後で上書きされます)
Quiz.java
package jomora.quiz;
public interface Quiz {
public int loadQuestions();
public jomora.quiz.Question getQuestion();
}
+先ほど作ったAntタスクを実行し、
#ref(AntRun.png,center,nolink);
#br
+…ServiceSoapBindingImpl.java にWebサービスのロジックを実装するだけです。