Tomcat手動公開WebService——axis 2

5361 ワード

  • 準備作業.まず公式サイトでaxis 2-1.6.2-binをダウンロードします.zip,axis2-1.6.2-war.zipこの2つのパッケージは、axis 2-1.6.2-binを解凍する.zipはディレクトリ(私のはCディスク)にパッケージされ、環境変数AXIS 2_を設定します.HOME=C:axis 2-1.6.2、この手順はJDKを設定するのと同じで、言わないでください.axis 2-1.6.2-warを解凍する.zipはwarパケットaxis 2を得る.war、tomcatの中で実行して、アクセスアドレスはhttp://localhost:8080/axis2/成功ページは以下の通り:Tomcat手动发布WebService —— axis2_第1张图片プロジェクトaxis 2のディレクトリ構造は以下の通り:
  • axis2-web
    META-INF
    WEB-INF
        classes 
        conf
            axis2.xml 
        lib
            activation.jar
            ...
            xmlSchema.jar
        modules
            modules.list 
            addressing.mar
            ...
            soapmonitor.mar
        services
            services.list
            aservice.aar
            ...
            version.aar
        web.xml
  • には、さまざまなパブリケーション方法があります.1つ目の方法:クラスファイル(.class)を直接パブリッシュします.欠点は、このようなファイルにパケットパスがないことです.そうしないと、パブリッシュエラーが発生し、次のクラスをパブリッシュします.
    import java.util.Random;
    
    /**
     * 
     * @author yanqh
     * @since 2013-7-29
     * 
     */
    public class HelloWorldService {
    
    	public String sayHello(String name) {
    		return name + " say: hello [axis2]";
    	}
    	
    	public int getAge(int i) {
    		return i + new Random().nextInt(100);
    	}
    }
    .プロジェクトaxis 2のWEB-INFの下にフォルダpojoを新規作成し、HelloWorldServices.classはpojoに入れればOKです.「なぜpojoフォルダを使うのですか?プロジェクトWEB-INFconfのaxis 2.xmlファイルを見ると
    <deployer extension=".class" directory="pojo" class="org.apache.axis2.deployment.POJODeployer"/>
    」とあります.プロジェクトのホームページのサービスリンクをクリックして、公開されたサービスを表示します.次のようにします.Tomcat手动发布WebService —— axis2_第2张图片
  • 使用アドレスhttp://localhost:8080/axis2/services/HelloWorldService/sayHello?name=yanqhHelloWorldServiceのsayHelloメソッドにアクセスするには
  • 第2の方法:aarパッケージを打ってパブリッシュします.次のクラスを発表します.
    package samples.quickstart.service.pojo;
    
    import java.util.HashMap;
    
    public class StockQuoteService {
        private HashMap map = new HashMap();
    
        public double getPrice(String symbol) {
            Double price = (Double) map.get(symbol);
            if(price != null){
                return price.doubleValue();
            }
            return 42.00;
        }
    
        public void update(String symbol, double price) {
            map.put(symbol, new Double(price));
        }
    }
    新しいservices.xml,
    <?xml version="1.0" encoding="UTF-8"?>
    <service name="StockQuoteService" scope="application">
        <description>
            Stock Quote Sample Service
        </description>
        <messageReceivers>
            <messageReceiver 
                mep="http://www.w3.org/2004/08/wsdl/in-only"
        class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>
            <messageReceiver
                mep="http://www.w3.org/2004/08/wsdl/in-out"
        class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
        </messageReceivers>
        <parameter name="ServiceClass">
            samples.quickstart.service.pojo.StockQuoteService
        </parameter>
    </service>
    その後、以下のディレクトリ構造を構築し、
     - StockQuoteService  //           
       - META-INF
         - services.xml
       - lib
       - samples
         - quickstart
           - service
             - pojo
               - StockQuoteService.class
       - StockQuoteService.wsdl  //  6    
  • .
  • はコマンドラインを開く、以下のコマンドを実行した後、StockQuoteServiceディレクトリの下でStockQuoteServicesが生成する.wsdlファイルは、次のコマンドTomcat手动发布WebService —— axis2_第3张图片を実行する後、StockQuoteServiceディレクトリの下でStockQuoteServicesが生成する.aarパッケージ、aarパッケージをプロジェクトaxis 2WEB-INFservicesに配置し、ServicesリストTomcat手动发布WebService —— axis2_第4张图片
  • を参照します.