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にアクセスしてみてください。 と書かれたページが でれば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の参照実装も参照してください。相互運用性の高い実装を提供する上で、参考になるでしょう。 JWSJava Web Service の略です。javaでプログラムを作り、その拡張子をjwsにして、tomcatのwebapps\axisに配置してやるとそれだけで、サービスを公開できるそうです。大変簡単らしいのですが、目的はSOAP,WSDLについて知りたいので、パスします。 |