#freeze
*[[WebService]]

最近巷で騒がれているもの。何がいいかわからないので、とりあえず環境を作って試してみましょう。
よく本では3種の神器、SOAP,WSDL,UDDIがうんたらかんたらと書かれていますが、はたしてほんとにこれは使い物になるのか、またwebサービスにすることによってどう変わるか検証していきます。
間単に説明すると
SOAP:Simple object Access Protocol データ交換の為のプロトコル
WSDL:Web Services Description Language インターフェースなどの仕様記述言語
UDDI:Universal Description,Discover and Integration Webサービスのgoogleみたいなもの。

**まずは環境設定
[[AXIS>http://ws.apache.org/axis/]] SOAPとWSDLを実装しているらしい。TOMCATと連携して動かして見ましょう。
・axis-1_1.zipを適当なとろろに解凍します。解凍後、c:\axis-1_1\webapps\axisをCATALINA_HOMEのwebappsにコピーしましょう。
ではTomcat起動して、http://localhost:8080/axis/index.htmlにアクセスしてみてください。

[[Apache-AXIS>http://hidekazu.dhs1.sst.ne.jp/axis/index.html]]

と書かれたページが でればOKです。 
Tomcatが4の場合、jaxrpc.jar と saaj.jarを CATALINA_HOME/webapps/axis/WEB-INF/lib から CATALINA_HOME/common/lib にコピーし、
CATALINA_HOME/conf/web.xmlの
 <!-- The mapping for the invoker servlet -->
 <servlet-mapping>
 <servlet-name>invoker</servlet-name>
 <url-pattern>/servlet/*</url-pattern>
 </servlet-mapping>
がコメントされている場合はコメントを削除してください。
またhttp://xml.apache.org/security/dist/java-library/のxml-security-bin-1_1_0.zipをダウンロードして、xmlsec.jarを CATALINA_HOME/webapps/axis/WEB-INF/libにコピーしましょう。
ではTomcat を再起動して、今度はhttp://localhost:8080/axis/happyaxis.jspにアクセスしてみてください。
Axis Happiness Page
と表示されればOKです。xmlsec.jarがないとWarningが表示されます。
またxmlを処理するためのjarが必要になりますので、http://xml.apache.org/xerces2-j/index.htmlから左にあるメニューのDownloadを選択し、archive download site. からXerces-J-bin.2.6.2.zipをダウンロードしましょう。その中にあるjarをclasspathにセットしておきます。このあたりは、後にサンプルを作る際に説明していきます。
これは、Webサービスのプログラムを作ったときに、それをAxisにそのプログラムを教えてやる必要があります。その作業がデプロイなんですが、WSDD(Web Service Deployment Descripter)というファイルを作成して、デプロイを行う際に必要となるclassになります。

**作成
とりあえず、Javaでプログラムを作りましょう。作ったファイルをCATALINA_HOMEのwebappsにコピーします。その後、そのクラスを公開するので、wsddファイルを作成します。
 <deployment xmlns="http://xml.apache.org/axis/wsdd/"
            xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
  <service name="urn:YubintblService" provider="java:RPC">
   <parameter name="className" value="com.hidekazu.proutil.bean.data.YubintblService"/>
   <parameter name="allowedMethods" value="*"/>
   <parameter name="scope" value="session"/>
  </service>
  <beanMapping qname="ns:YubintblBean" xmlns:ns="urn:yubintblBean"
  languageSpecificType="java:com.hidekazu.proutil.bean.entity.YubintblBean"/>  
 </deployment>
その後、
 java org.apache.axis.client.AdminClient -p 8080 deploy.wsdd
でデプロイします。-pはtomcatのポートです。この後、
 http://localhost:8080/axis/servlet/AxisServlet
にアクセスして、先ほどデプロイしたサービスが見えていればOKです。
たまにAnd now... Some Servicesだけが表示されて、なにも見えないことがあります。そのときは、CATALINA_HOMEのlogを見てください。localhost_logに何かメッセージがでているはずです。

**データマッピング 
Axisのサポートする標準マッピング (WSDL -> Java)
  xsd:base64Binary byte[] 
  xsd:boolean      boolean 
  xsd:byte         byte 
  xsd:dateTime     java.util.Calendar 
  xsd:decimal      java.math.BigDecimal 
  xsd:double       double 
  xsd:float        float 
  xsd:hexBinary    byte[] 
  xsd:int          int 
  xsd:integer      java.math.BigInteger 
  xsd:long         long 
  xsd:QName        javax.xml.namespace.QName 
  xsd:short        short 
  xsd:string       java.lang.String  
AxisはJAX-RPC互換です。そこで、JAX-RPC仕様や、Sunの参照実装も参照してください。相互運用性の高い実装を提供する上で、参考になるでしょう。

**JWS
Java Web Service の略です。javaでプログラムを作り、その拡張子をjwsにして、tomcatのwebapps\axisに配置してやるとそれだけで、サービスを公開できるそうです。大変簡単らしいのですが、目的はSOAP,WSDLについて知りたいので、パスします。

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS