Advertisement
Guest User

Untitled

a guest
Mar 28th, 2017
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.56 KB | None | 0 0
  1. package xmlrpcserwer;
  2. import org.apache.xmlrpc.WebServer;
  3. import java.lang.reflect.*;
  4. import java.text.SimpleDateFormat;
  5. import java.util.Calendar;
  6. import java.util.Date;
  7. import java.util.Locale;
  8. /**
  9. * Klasa serwera RPC
  10. * @author  Szymon Matwijów 220865
  11. * @version 1.0
  12. * @since   2017-03-28
  13. */
  14. public class serwerRPC {
  15.    
  16.    
  17.     private int operationNr = 0;
  18.  
  19.     /**
  20.      * Serwer RPC wykonuje kilka dzialan (oferuje kilka procedur ďż˝ inne niz w podanej instrukcji) wymagajacych podania wiecej niz jednego parametru
  21.      * @param x
  22.      * @param y
  23.      * @return
  24.      */
  25.     public Integer pow(int x, int y) {
  26.         System.out.println("Run pow");
  27.         System.out.println("Recived x:"+x+"\ty:"+y);
  28.         return (int) Math.pow(x, y);
  29.     }
  30.    
  31.    
  32.     /**
  33.      * Procedura zawiera parametry jednego typu.
  34.      * @param i liczba
  35.      * @param s ciag znakĂłw
  36.      * @return ciag znakow
  37.      */
  38.     public String methodObject( int i, String s) {
  39.         System.out.println("Run methodObject");
  40.         System.out.println("Recived i:"+i+"\ts:"+s);
  41.         return  i + s;
  42.         }
  43.    
  44.     /**
  45.        * Metoda opoznia wywolanie metody
  46.        * @param x czas opuznienia wykonania metody
  47.        * @return int zwracam warosc
  48.        */
  49.     public String asy(int x) {
  50.         System.out.println("Run asy");
  51.         System.out.println("Recived x:"+x);
  52.        
  53.         try {            
  54.                 Thread.sleep(x);           
  55.        
  56.         } catch(InterruptedException ex) {
  57.         ex.printStackTrace();
  58.         Thread.currentThread().interrupt();
  59.         }
  60.        
  61.    
  62.    
  63.        
  64.         return " finish ";
  65.         }
  66.    
  67.  
  68.    
  69.     /**
  70.      * Serwer zawiera usluge show, ktora podaje informacje o dostepnych
  71. procedurach i podaje ich opisy
  72.      * @return ciag znakow z informacja
  73.      */
  74.     public static String show()
  75.     {
  76.         System.out.println("Run show");
  77.         String showParam = "";
  78.         try {
  79.             Class c = serwerRPC.class;
  80.             Method[] m = c.getDeclaredMethods();
  81.             for (int i = 1; i < m.length; i++)
  82.             {
  83.                
  84.             showParam+=m[i].getName() + "(";
  85.             Parameter [] t = m[i].getParameters();
  86.                 for(Parameter p : t)
  87.                 {
  88.                     String temp =p.getType().toString();
  89.                     if(temp.equals("class java.lang.String"))
  90.                     {
  91.                         temp = "String";
  92.                     }
  93.                     showParam+=temp + ",";
  94.                 }
  95.                 if(t.length>0)
  96.                 showParam=showParam.substring(0,showParam.length()-1);
  97.                
  98.                 showParam+=")\n";
  99.             }
  100.          
  101.         } catch (Throwable e) {
  102.             System.err.println(e);
  103.         }
  104.        
  105.         return showParam;
  106.     }
  107.    
  108.     public String getDate(String name, String lang){
  109.         System.out.println("Run getDate");
  110.         System.out.println("Recived name:"+name+"\t lang:"+lang);
  111.        
  112.         SimpleDateFormat format = new SimpleDateFormat("EEEE dd/MMMM/YYYY hh:mm:ss",new Locale(lang,"US"));
  113.  
  114.         return name+", "+format.format(new Date());
  115.     }
  116.  
  117.     /**
  118.        * Główna metoda serwera odpowiada za wystawienie serwera i nasluchiwanie requestow.
  119.        * @param args Parametry uruchomieniowe
  120.        * @return Nothing.
  121.        */
  122.     public static void main(String[] args) {
  123.         // TODO Auto-generated method stub
  124.          
  125.         try {
  126.             System.out.println("Startuje serwer XML-RPC...");
  127.             int port  = 10014;
  128.             WebServer server = new WebServer(port);
  129.             //ponizej tworzy sie obiekt swojej klasy serwera i uruchamia go:
  130.             server.addHandler("mojserwer", new serwerRPC());
  131.             server.start();
  132.             System.out.println(show());
  133.             System.out.println("Serwer wystartowal pomyslnie.");
  134.             System.out.println("Nasluchuje na porcie: " + port);
  135.             System.out.println("Aby zatrzymaďż˝ serwer nacisnij crl+c");
  136.             } catch (Exception exception) {
  137.             System.err.println("Serwer XML-RPC: " + exception);
  138.             }
  139.  
  140.     }
  141.  
  142. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement