Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package xmlrpcserwer;
- import org.apache.xmlrpc.WebServer;
- import java.lang.reflect.*;
- import java.text.SimpleDateFormat;
- import java.util.Calendar;
- import java.util.Date;
- import java.util.Locale;
- /**
- * Klasa serwera RPC
- * @author Szymon Matwijów 220865
- * @version 1.0
- * @since 2017-03-28
- */
- public class serwerRPC {
- private int operationNr = 0;
- /**
- * Serwer RPC wykonuje kilka dzialan (oferuje kilka procedur ďż˝ inne niz w podanej instrukcji) wymagajacych podania wiecej niz jednego parametru
- * @param x
- * @param y
- * @return
- */
- public Integer pow(int x, int y) {
- System.out.println("Run pow");
- System.out.println("Recived x:"+x+"\ty:"+y);
- return (int) Math.pow(x, y);
- }
- /**
- * Procedura zawiera parametry jednego typu.
- * @param i liczba
- * @param s ciag znakĂłw
- * @return ciag znakow
- */
- public String methodObject( int i, String s) {
- System.out.println("Run methodObject");
- System.out.println("Recived i:"+i+"\ts:"+s);
- return i + s;
- }
- /**
- * Metoda opoznia wywolanie metody
- * @param x czas opuznienia wykonania metody
- * @return int zwracam warosc
- */
- public String asy(int x) {
- System.out.println("Run asy");
- System.out.println("Recived x:"+x);
- try {
- Thread.sleep(x);
- } catch(InterruptedException ex) {
- ex.printStackTrace();
- Thread.currentThread().interrupt();
- }
- return " finish ";
- }
- /**
- * Serwer zawiera usluge show, ktora podaje informacje o dostepnych
- procedurach i podaje ich opisy
- * @return ciag znakow z informacja
- */
- public static String show()
- {
- System.out.println("Run show");
- String showParam = "";
- try {
- Class c = serwerRPC.class;
- Method[] m = c.getDeclaredMethods();
- for (int i = 1; i < m.length; i++)
- {
- showParam+=m[i].getName() + "(";
- Parameter [] t = m[i].getParameters();
- for(Parameter p : t)
- {
- String temp =p.getType().toString();
- if(temp.equals("class java.lang.String"))
- {
- temp = "String";
- }
- showParam+=temp + ",";
- }
- if(t.length>0)
- showParam=showParam.substring(0,showParam.length()-1);
- showParam+=")\n";
- }
- } catch (Throwable e) {
- System.err.println(e);
- }
- return showParam;
- }
- public String getDate(String name, String lang){
- System.out.println("Run getDate");
- System.out.println("Recived name:"+name+"\t lang:"+lang);
- SimpleDateFormat format = new SimpleDateFormat("EEEE dd/MMMM/YYYY hh:mm:ss",new Locale(lang,"US"));
- return name+", "+format.format(new Date());
- }
- /**
- * Główna metoda serwera odpowiada za wystawienie serwera i nasluchiwanie requestow.
- * @param args Parametry uruchomieniowe
- * @return Nothing.
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- try {
- System.out.println("Startuje serwer XML-RPC...");
- int port = 10014;
- WebServer server = new WebServer(port);
- //ponizej tworzy sie obiekt swojej klasy serwera i uruchamia go:
- server.addHandler("mojserwer", new serwerRPC());
- server.start();
- System.out.println(show());
- System.out.println("Serwer wystartowal pomyslnie.");
- System.out.println("Nasluchuje na porcie: " + port);
- System.out.println("Aby zatrzymaďż˝ serwer nacisnij crl+c");
- } catch (Exception exception) {
- System.err.println("Serwer XML-RPC: " + exception);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement