Witam wszystkich. Mam taki proble. [???] Na zajecia musze napisac program client/server w java w XML-RPC. Kody programu sie kompliluja bez problemow, natomiast gdy uruchamiam program nie dziala tak jak powinien.. Czesto sie zawiesza.. :/ Client jest w GUI, natomiast Server korzysta z konsoli. Spedzilem sporo czasu nad tym i nic nie moge wymyslic.. [glowa] Ponizej dolanczam kody obu programow. Jesli ktos moglby mi pomoc i poprawic kody bylbym ogromnie wdzieczny..
Kontakt rowniez na gg: 2141466
Z gory dzieki za pomoc.

Kod clienta:

import java.awt.*; 
import java.awt.event.*;
import javax.swing.*;
import org.apache.xmlrpc.*;
import java.util.Vector;
import java.io.*;
import java.util.*;


public class ClientXML extends JFrame
{ 
 	//Variables declaration
	String getInfo="";
	String key;


	private JTextArea consolArea;
	private JScrollPane jScrollPane1;
	private JButton logIn;
	private JButton getOffer;
	private JButton makeOrder;
	private JButton sendFeedback;
	private JButton logOut;
	private JPanel contentPane;
	//End of variables declaration 
  
  
 	public ClientXML() 
 	{ 
 		super(); 
 		initializeComponent(); 
		this.setVisible(true);
 	} 
  
 	private void initializeComponent() 
 	{ 
 		consolArea = new JTextArea(getInfo); 
 		jScrollPane1 = new JScrollPane();
		logIn = new JButton();
 		getOffer = new JButton(); 
 		makeOrder = new JButton(); 
 		sendFeedback = new JButton(); 
 		logOut = new JButton(); 
 		contentPane = (JPanel)this.getContentPane(); 
  
 		// 
 		// consolArea- JTextArea
 		// 
 		consolArea.setText("");
		
 		// 
 		// jScrollPane1 
 		// 
 		jScrollPane1.setViewportView(consolArea);
		
 		// 
 		// logIn button
 		//
		logIn.setText("Log in"); 
 		logIn.addActionListener(new ActionListener() { 
 			public void actionPerformed(ActionEvent e) 
 			{

 				logIn_actionPerformed(e);

 			}
  
 		});

 		// 
 		// getOffer button
 		//
 		getOffer.setText("Get offer"); 
 		getOffer.addActionListener(new ActionListener() { 
 			public void actionPerformed(ActionEvent e) 
 			{

 				getOffer_actionPerformed(e);

 			}
  
 		});
		
 		// 
 		// makeOrder button
 		// 
 		makeOrder.setText("Make order"); 
 		makeOrder.addActionListener(new ActionListener() { 
 			public void actionPerformed(ActionEvent e) 
 			{ 
 				makeOrder_actionPerformed(e); 
 			} 
  
 		});
		
 		// 
 		// sendFeedback button
 		// 
 		sendFeedback.setText("Send feedback"); 
 		sendFeedback.addActionListener(new ActionListener() { 
 			public void actionPerformed(ActionEvent e) 
 			{ 
 				sendFeedback_actionPerformed(e); 
 			} 
  
 		});
		
 		// 
 		// logOut button
 		// 
 		logOut.setText("Log out"); 
 		logOut.addActionListener(new ActionListener() { 
 			public void actionPerformed(ActionEvent e) 
 			{ 
 				logOut_actionPerformed(e); 
 			} 
  
 		});
		
 		// 
 		// contentPane 
 		// 
 		contentPane.setLayout(null); 
 		addComponent(contentPane, jScrollPane1, 149,15,218,233); 
 		addComponent(contentPane, logIn, 14,15,113,28); 
 		addComponent(contentPane, getOffer, 15,62,111,28); 
 		addComponent(contentPane, makeOrder, 18,109,109,28); 
 		addComponent(contentPane, sendFeedback, 18,153,108,28); 
 		addComponent(contentPane, logOut, 18,199,107,28);
		
 		// 
 		// ClientXML 
 		// 
 		this.setTitle("ClientXML"); 
 		this.setLocation(new Point(0, 0)); 
 		this.setSize(new Dimension(390, 300));
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 	} 
  
 	private void addComponent(Container container,Component c,int x,int y,int width,int height) 
 	{ 
 		c.setBounds(x,y,width,height); 
 		container.add(c); 
 	}

	//
	//By pressing "Log in" button it can be connected into the server.
	//
 	private void logIn_actionPerformed(ActionEvent e) 
 	{ 
 		try 
		{
			XmlRpcClient server = new XmlRpcClient("http://localhost/RPC2");

			String password;
			password = JOptionPane.showInputDialog(null,"Please enter password:");
				

			Vector params1 = new Vector(); 
			params1.add(password); 
			String key = (String) server.execute("factory.login", params1);

				
			Object result = server.execute("factory.hello", new Vector() );
			getInfo+=("/nServer status: " + result.toString());
     
			consolArea.setText(getInfo);
		}

		catch (Exception ex) 
		{
			getInfo+=("ChatClient: " + ex);
		}  
 	}

	//
	//By pressing "Get offer" button we'll get a list of available tools.
	//
	private void getOffer_actionPerformed(ActionEvent e) 
 	{
		try 
		{
			XmlRpcClient server = new XmlRpcClient("http://localhost/RPC2");

 			String msg = "Hello, Can I get a list of available tools?";
			String who = "Adrian's Wholesaler";
			Vector params2 = new Vector();
			params2.add(who);
			params2.add(msg);
			Object result1 = server.execute("factory.message", params2 );
			getInfo+=(result1.toString());

			Vector params3 = new Vector(); 
			params3.add(key); 
			Vector result2 = (Vector) server.execute("factory.tools", params3 ); 
     
			for( int i=0; i < result2.size(); i++ )
			{
				getInfo+=(""+i+": "+result2.get(i)); 
			}
		}
		
		catch (Exception ex) 
		{
			getInfo+=("ChatClient: " + ex);
		}
  
 	}

	//
	//  By pressing "Make order" button it can be made order
	//	and sent into the server.
	//
 	private void makeOrder_actionPerformed(ActionEvent e) 
 	{

		try 
		{
			XmlRpcClient server = new XmlRpcClient("http://localhost/RPC2");

			BufferedReader br2 = new BufferedReader(new InputStreamReader(System.in));
			String myOrder;

			myOrder = JOptionPane.showInputDialog(null,"Please enter your order and a quantity:");
			myOrder = br2.readLine();

			String who2 = "Adrian's Wholesaler";
			Vector params4 = new Vector();
			params4.add(myOrder);
			params4.add(who2);
			Object result3 = server.execute("factory.order", params4);

			Date result4 = (Date) server.execute("factory.getTimeOfOrder", new Vector());
			getInfo+=("Your order will be ready to pick up: " + result4.toString());
		}

		catch (Exception ex) 
		{
			getInfo+=("ChatClient: " + ex);
		}

 	} 
	
	//
	//By pressing "Send Feedback" button it can be sent Feedback
	//	into the server
	//
 	private void sendFeedback_actionPerformed(ActionEvent e) 
 	{ 
		try 
		{
			XmlRpcClient server = new XmlRpcClient("http://localhost/RPC2");

			BufferedReader br3 = new BufferedReader(new InputStreamReader(System.in));
			String feedB;
			System.out.println("Please send your feedback to us:");
			feedB = br3.readLine();

			Vector params5 = new Vector();
			params5.add(feedB);
			Object result5 = server.execute("factory.feedback", params5);
		}

		catch (Exception ex) 
		{
			getInfo+=("ChatClient: " + ex);
		}  
 	} 
	
	//
	//By pressing "Log out" button it can be loged out from server
	//	and session will be ended.
	//
 	private void logOut_actionPerformed(ActionEvent e) 
 	{
		try 
		{
			XmlRpcClient server = new XmlRpcClient("http://localhost/RPC2");

 			Object result6 = server.execute("factory.endSession", new Vector() );
		}

		catch (Exception ex) 
		{
			getInfo+=("ChatClient: " + ex);
		} 
 	} 
  
	//
	//----------Main method----------
	//
	public static void main(String[] args) 
 	{ 
 		JFrame.setDefaultLookAndFeelDecorated(true); 
 		JDialog.setDefaultLookAndFeelDecorated(true);
		new ClientXML();
		
		
 	}
}

Kod Servera:

import org.apache.xmlrpc.*;
import java.util.*;

public class ServerXMLRPC
	{

	public String authentication = null;
	public static WebServer server;
 
	public String login(String password)
		{
		if( password.equals("gullible"))
			{ 
				authentication = Double.toString(Math.random());
				return authentication; 
			}
		else
			{
				endSession();
				return "Wrong password!!!";
			}
		}

	public String hello()
		{
			return "You're actually connected with Tools Garden Factory's Server...";
		}

	public String message (String who, String what)
		{
			System.out.println(who+" says: "+what);
			return "Yes, We'll send you... This is our offer";
		}
	
	public String [] tools(String pass2)
		{
		if( pass2.equals(authentication) )
			{
				String [] myTools = { "spade", "rake", "lawn mower", "hoe", "pitchfork" };	
				return myTools;
			}
		else
			{ 
				String [] myFilling = { }; 
				return myFilling;
			}
		}

	public String order (String who2, String myOrder)
		{
			System.out.println(myOrder+" orders: "+who2);
			return "We got already your list of order. Thank you.";
		}
	
	public Date getTimeOfOrder()
		{
			long timeNow = System.currentTimeMillis();
			long tomorrow = timeNow + 1000 * 60 * 60 * 24;
			return new Date (tomorrow);
		}
	
	public String feedback(String feedB)
		{
			System.out.println("Customer sent feedback: " + feedB);
			return "Thank you for your cooperation with us!";
		}
	
	public String endSession()
		{
			System.out.println("Server was closed!");
			server.shutdown();
			return "You've been log out!";
		}
	
	public static void main (String [] args)
		{

		try
			{
				WebServer server = new WebServer(80);
				server.addHandler ("factory", new ServerXMLRPC());
				server.start();
				System.out.println("Server is run now...");
			}

		catch (Exception ex)
			{
				System.err.println("There is a problem:" + ex);
			}
		}
	}