WS Example

  1. vytvoříme si jednoduchou metodu, kterou budeme chtít zpřístupnit jako webovou službu

    package mypackage;
     
    public class Calculator {
      public int add(int i1, int i2) {
        return i1 + i2; 
      }
    }
    
  2. zkompilujeme

  3. pomocí utility Java2WSDL vytvoříme WSDL soubor

    java org.apache.axis.wsdl.Java2WSDL -o Calculator.wsdl 
      -l"http://localhost:8080/axis/services/Calculator" 
      -n"urn:Mypackage" -p"mypackage" "urn:Mypackage" 
      mypackage.Calculator
    
  4. pomocí utility WSDL2Java vytvoříme potřebná napojení

    java org.apache.axis.wsdl.WSDL2Java -o . -d Session -s -S true -Nurn:Mypackage 
      mypackage Calculator.wsdl
    

Axis nám tímto vygeneroval všechny potřebné soubory:

  • CalculatorSoapBindingImpl.java : Java soubor obsahující defaultní serverovou implementaci webové služby Calculator. Je potřeba implementaci změnit podle vlastních potřeb.

  • Calculator.java: Nové rozhraní obsahující odpovídající java.rmi.Remote použití.

  • CalculatorService.java: Java soubor obsahující klient service rozhraní.

  • CalculatorServiceLocator.java: Java soubor obsahující klient service implementaci.

  • CalculatorSoapBindingSkeleton.java: Server skeleton.

  • CalculatorSoapBindingStub.java: Klient stub.

  • deploy.wsdd: Deployment descriptor.

  • undeploy.wsdd: Undeployment descriptor.

Pomocí Admin klienta deploydneme serverovou část:

Zkompilujeme a nahrajeme serverovou část do tomcatu do adresáře: axis/WEB-INF/classes.

java org.apache.axis.client.AdminClient deploy.wsdd

A nyní už můžeme naši webovou službu vyzkoušet. Nejprve se přesvědčíme zdali opravdu na příslušné adrese služba běží.

http://localhost:8080/axis/services/Calculator?wsdl

Dále potřebujeme vytvořit nějaký příklad volání:

package mypackage;

public class Main {

    public static void main (String[] args) throws Exception {
      int first = Integer.parseInt(args[0]);
      int second = Integer.parseInt(args[1]);
      Calculator binding = new CalculatorServiceLocator().getCalculator();
      int result = ((CalculatorSoapBindingStub)binding).add(first, second);
      System.out.println(first + " + " + second + " = " + result);
   }
}

Poté už stačí jen spustit:

java mypackage.Main 1 3

A dostaneme jako výsledek webové služby:

1 + 3 = 4