axis


SOAPメモ

AXIS build.xml

<project name="commonLib" default="deploy" basedir=".">
 <property name="axis.dir" value="/Program Files/Apache Software Fondation/Tomcat 4.1/webapps/axis"/>
 <property name="lib.dir" value="/Program Files/Apache Software Fondation/Tomcat 4.1/webapps/axis/WEB-INF/lib" />
 <property name="class.dir" value="${axis.dir}/WEB-INF/classes" />
 <property name="server" value="http://localhost:8080/axis/services/AdminService" />
 <!-- Java実行時のクラスパス -->
 <path id="class.path">
   <pathelement location="${lib.dir}/axis.jar"/>
   <pathelement location="${lib.dir}/axis-ant.jar"/>
   <pathelement location="${lib.dir}/commons-discovery.jar"/>
   <pathelement location="${lib.dir}/commons-logging.jar"/>
   <pathelement location="${lib.dir}/jaxrpc.jar"/>
   <pathelement location="${lib.dir}/log4j-1.2.4.jar"/>
   <pathelement location="${lib.dir}/saaj.jar"/>
   <pathelement location="${lib.dir}/wsdl4j.jar"/>
 </path>
 <!-- deploy -->
 <target name="deploy">
   <!-- アンデプロイ -->
   <java classname="org.apache.axis.client.AdminClient" fork="yes">
     <arg value="-l${server}"/>
     <arg value="undeploy.wsdd"/>
     <classpath refid="class.path" />
   </java>
   <!-- サーバにクラスファイルをデプロイ -->
   <copy file="src/Hello.java" tofile="${axis.dir}/Hello.jws" />
   <copy todir="${class.dir}">
     <fileset dir="./classes">
       <include name="*.class" />
       <include name="server/**/**.class" />
     </fileset>
   </copy>
   <!-- サーバにWSDDファイルをデプロイ -->
   <java classname="org.apache.axis.client.AdminClient" fork="yes">
     <arg value="-l${server}"/>
     <arg value="deploy.wsdd"/>
     <classpath refid="class.path" />
   </java>
   <!-- プロキシクラス生成 -->
   <java classname="org.apache.axis.wsdl.WSDL2Java" fork="yes">
     <arg value="http://localhost:8080/axis/services/echo?wsdl"/>
     <classpath refid="class.path" />
   </java>
   <java classname="org.apache.axis.wsdl.WSDL2Java" fork="yes">
     <arg value="http://localhost:8080/axis/services/list?wsdl"/>
     <classpath refid="class.path" />
   </java>
   <!-- プロキシクラス移動 -->
   <move todir="./src/localhost">
     <fileset dir="./localhost" />
   </move>
   <move todir="./src/entity">
     <fileset dir="./entity" />
   </move>
 </target>
</project>

サーバ側WSDD

<deployment xmlns="http://xml.apache.org/axis/wsdd/"
           xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
 <!-- echoサービス -->
 <service name="echo" provider="java:RPC">
   <parameter name="className" value="Echo" />
   <parameter name="allowedMethods" value="*" />
 </service>
 <!-- listサービス -->
 <service name="list" provider="java:RPC">
   <parameter name="className" value="server.PatientList" />
   <parameter name="allowedMethods" value="*" />
   <beanMapping
     qname="myNS:PatientBean"
     xmlns:myNS="urn:entity"
     languageSpecificType="java:server.PatientBean" />
 </service>
</deployment>

axis2のwsdl2java.batを実行するとNoClassDefFoundException?が発生する。

どうやらクラスパスにjarを全部通そうとして、環境変数の制限か何かですべてのJARにパスが通らないことが原因っぽい。Windows2000だけか?lib以下にある全てのJarを解凍し、1つのJARにまとめてクラスパスを通したところ正常に通った・・・。

Menu

Linux

サーバ構築

Windows

Java

Program

 

最新の20件

2008-04-02 2008-03-11 2008-01-28 2008-01-21
  • axis
2007-11-27 2007-09-19 2007-06-07 2007-04-11 2007-04-06 2007-03-22 2006-12-20 2006-12-05 2006-12-04 2006-10-27 2006-09-22 2006-07-03 2006-05-16