VisualStudio.NETでWebサービスを作成するのは、とても簡単です。それに比べると、AXISでのWebサービス作成は、CUIだったりコマンドオプションが複雑だったりして、やや面倒です。eclipse + antを使うことである程度楽になるので、まとめておきます。

  1. eclipseのAntランタイムのクラスパスにAXISのjarファイルを登録します。
    AntLib.png
  2. 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
  3. build.xml(なければ作る)に以下のようにタスクを追加。(内容はサンプル)
    <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>
  4. 後は、Webサービスとなるインターフェースを作って(このクラスは後で上書きされます)
     Quiz.java
    package jomora.quiz;
    
    public interface Quiz {
        public int loadQuestions();
        public jomora.quiz.Question getQuestion();
    }
  5. 先ほど作ったAntタスクを実行し、
    AntRun.png
  6. …ServiceSoapBindingImpl.java にWebサービスのロジックを実装するだけです。

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS