Я пытаюсь связаться с клиентом и сервером в одном проекте, в котором мой клиент и сервер начали с main()
моего проекта, имеющего два разных потока, но когда клиент пытается вызвать функцию answer_is на стороне сервера, он будет показать приведенное ниже исключение. Когда я запускаю клиента и сервера объединены в одном проекте я получил ошибкуКлиент и сервер Java XML RPC
xception in thread "Thread-2" java.lang.InstantiationError: org.apache.xmlrpc.XmlRpcRequest at org.apache.xmlrpc.XmlRpcRequestProcessor.decodeRequest(XmlRpcRequestProcessor.java:82) at org.apache.xmlrpc.XmlRpcWorker.execute(XmlRpcWorker.java:143) at org.apache.xmlrpc.XmlRpcServer.execute(XmlRpcServer.java:139) at org.apache.xmlrpc.XmlRpcServer.execute(XmlRpcServer.java:125) at org.apache.xmlrpc.WebServer$Connection.run(WebServer.java:761) at org.apache.xmlrpc.WebServer$Runner.run(WebServer.java:642) at java.lang.Thread.run(Thread.java:745) Exception in thread "Thread-3" java.lang.InstantiationError: org.apache.xmlrpc.XmlRpcRequest at org.apache.xmlrpc.XmlRpcRequestProcessor.decodeRequest(XmlRpcRequestProcessor.java:82) at org.apache.xmlrpc.XmlRpcWorker.execute(XmlRpcWorker.java:143) at org.apache.xmlrpc.XmlRpcServer.execute(XmlRpcServer.java:139) at org.apache.xmlrpc.XmlRpcServer.execute(XmlRpcServer.java:125) at org.apache.xmlrpc.WebServer$Connection.run(WebServer.java:761) at org.apache.xmlrpc.WebServer$Runner.run(WebServer.java:642) at java.lang.Thread.run(Thread.java:745) JavaClient: org.apache.xmlrpc.XmlRpcException: Failed to create input stream: Unexpected end of file from server
Вот мой код для проекта 1, имеющего клиент и сервер
Главный класс
package serverclienttest;
/**
*
* @author root
*/
public class ServerclientTest {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
try {
ServerThread serverthread = new ServerThread();
Thread t = new Thread(serverthread);
t.start();
ClientThread clientthread = new ClientThread();
Thread t1 = new Thread(clientthread);
t1.start();
} catch (Exception exception) {
System.err.println("WebClientServer: " + exception);
}
}
}
клиентской
package serverclienttest;
import java.net.URL;
import java.util.Map;
import java.util.Scanner;
import java.util.Vector;
import java.util.*;
import java.io.*;
import java.net.*;
import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;
import org.apache.xmlrpc.client.XmlRpcClient;
import java.util.*;
import java.io.*;
/**
*
* @author root
*/
public class ClientThread implements Runnable{
public void run()
{
try {
// XmlRpcClient server = new XmlRpcClient("http://localhost/RPC2");
XmlRpcClient client = new XmlRpcClient();
XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
config.setServerURL(new URL("http://localhost:5300/RPC2"));
config.setEnabledForExtensions(true);
//Vector params = new Vector();
/* Hashtable params = new Hashtable();
params.put(1, 1);
params.put(2, 2);*/
Object[] testclass = new Object[]{1,2};
client.setConfig(config);
int result = (Integer) client.execute("sample.sum", testclass);
System.out.print("Client Executed");
int sum = ((Integer) result).intValue();
System.out.println("The sum is: "+ sum);
} catch (Exception exception) {
System.err.println("JavaClient: " + exception);
}
}
}
стороне сервера
public class ServerThread {
public ServerThread() {
System.out.println("Handler registered as answer_is");
}
public Integer sum(int x, int y){
return new Integer(x+y);
}
public void run()
{
try {
System.out.println("Attempting to start XML-RPC Server...");
WebServer server = new WebServer(5300);
server.addHandler("sample", new ServerThread());
server.start();
System.out.println("Started successfully.");
System.out.println("Accepting requests. (Halt program to stop.)");
}
catch (Exception exception){
System.err.println("JavaServer: " + exception);
}
}
Но когда я писал на стороне сервера в другом проекте и запустить его, он будет хорошо работать так плз скажите мне, почему клиент и сервер не работает в одном проекте
Plz ответить мне как можно раньше –
Вы разместившего 'под клиента код на стороне в' Server' блока кода на стороне, вы можете это исправить? – Arpit
Я исправил код на стороне сервера –