VisualStudio.NETでWebサービスを作成するのは、とても簡単です。それに比べると、AXISでのWebサービス作成は、CUIだったりコマンドオプションが複雑だったりして、やや面倒です。GUIツールを自作されている方もいますね。
※ ちなみに、AXISでもJWS(○Java WebService、×Java Web Start)ならば、機能が限定されますけど、Javaクラスを書くだけでインスタントにWebサービスが作れますね。
私も自作しようかと思ってたんですが、eclipse + antを使うことである程度楽になるので、これでいいやってことで、まとめておきます。
- eclipseのAntランタイムのクラスパスにAXISのjarファイルを登録します。
- 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タスクを実行し、
- …ServiceSoapBindingImpl.java にWebサービスのロジックを実装するだけです。