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 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

と書かれたページが でれば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
Last-modified: 2004-10-12 (火) 14:41:00 (7156d)