一个简单的hello例子也报错,请大侠指点,谢谢!
服务端正常,客户端异常如下:
java.io.IOException: Server returned HTTP response code: 401 for URL: http://10.0.20.45:8080/
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1149)
at org.apache.xmlrpc.DefaultXmlRpcTransport.sendXmlRpc(DefaultXmlRpcTransport.java:87)
at org.apache.xmlrpc.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:72)
at org.apache.xmlrpc.XmlRpcClient.execute(XmlRpcClient.java:194)
at org.apache.xmlrpc.XmlRpcClient.execute(XmlRpcClient.java:185)
at org.apache.xmlrpc.XmlRpcClient.execute(XmlRpcClient.java:178)
at xmlrpc.HelloClient.main(HelloClient.java:22)
附源代码:
package xmlrpc;
import org.apache.xmlrpc.WebServer;public class HelloServer {
public HelloServer() {
} public static void main(String[] args) {
if(args.length < 1) {
System.out.println("Usage: java javaxml2.HelloServer [port]");
System.exit(-1);
}
System.out.println("Strating xml-rpc webServer........");
try {
WebServer server = new WebServer(Integer.parseInt(args[0]));
server.acceptClient("10.0.20.45");
server.addHandler("hello",new HelloHandler());
System.out.println(
"Registered HelloHandler class to \"hello\"");
System.out.println("Now accepting requests..."); } catch(Exception e) {
System.out.println("couldn't start server..........");
}
}
}package xmlrpc;
import org.apache.xmlrpc.XmlRpcClient;
import java.net.*;
import java.util.Vector;
import java.io.*;
import org.apache.xmlrpc.*;public class HelloClient {
public HelloClient() {
} public static void main(String[] args) {
if(args.length < 1) {
System.out.println("Usage: java HelloClient [your name]");
System.exit(-1);
}
try {
XmlRpcClient client = new XmlRpcClient(new URL("http://10.0.20.45:8080/"));
Vector params = new Vector();
params.addElement(args[0]);
try {
String result = (String) client.execute("hello.sayHello",
params);
System.out.println("response from server = " + result);
} catch (IOException ex1) {
ex1.printStackTrace();
} catch (XmlRpcException ex1) {
ex1.printStackTrace();
} catch(Exception ex1) {
ex1.printStackTrace();
}
} catch (MalformedURLException ex) {
System.out.println("Inncorrect URL for xmlrpcserver.........." + ex.toString());
}
}
}package xmlrpc;public class HelloHandler {
public HelloHandler() {
} public String sayHello(String name) {
return "Hello" + name;
}
}
服务端正常,客户端异常如下:
java.io.IOException: Server returned HTTP response code: 401 for URL: http://10.0.20.45:8080/
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1149)
at org.apache.xmlrpc.DefaultXmlRpcTransport.sendXmlRpc(DefaultXmlRpcTransport.java:87)
at org.apache.xmlrpc.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:72)
at org.apache.xmlrpc.XmlRpcClient.execute(XmlRpcClient.java:194)
at org.apache.xmlrpc.XmlRpcClient.execute(XmlRpcClient.java:185)
at org.apache.xmlrpc.XmlRpcClient.execute(XmlRpcClient.java:178)
at xmlrpc.HelloClient.main(HelloClient.java:22)
附源代码:
package xmlrpc;
import org.apache.xmlrpc.WebServer;public class HelloServer {
public HelloServer() {
} public static void main(String[] args) {
if(args.length < 1) {
System.out.println("Usage: java javaxml2.HelloServer [port]");
System.exit(-1);
}
System.out.println("Strating xml-rpc webServer........");
try {
WebServer server = new WebServer(Integer.parseInt(args[0]));
server.acceptClient("10.0.20.45");
server.addHandler("hello",new HelloHandler());
System.out.println(
"Registered HelloHandler class to \"hello\"");
System.out.println("Now accepting requests..."); } catch(Exception e) {
System.out.println("couldn't start server..........");
}
}
}package xmlrpc;
import org.apache.xmlrpc.XmlRpcClient;
import java.net.*;
import java.util.Vector;
import java.io.*;
import org.apache.xmlrpc.*;public class HelloClient {
public HelloClient() {
} public static void main(String[] args) {
if(args.length < 1) {
System.out.println("Usage: java HelloClient [your name]");
System.exit(-1);
}
try {
XmlRpcClient client = new XmlRpcClient(new URL("http://10.0.20.45:8080/"));
Vector params = new Vector();
params.addElement(args[0]);
try {
String result = (String) client.execute("hello.sayHello",
params);
System.out.println("response from server = " + result);
} catch (IOException ex1) {
ex1.printStackTrace();
} catch (XmlRpcException ex1) {
ex1.printStackTrace();
} catch(Exception ex1) {
ex1.printStackTrace();
}
} catch (MalformedURLException ex) {
System.out.println("Inncorrect URL for xmlrpcserver.........." + ex.toString());
}
}
}package xmlrpc;public class HelloHandler {
public HelloHandler() {
} public String sayHello(String name) {
return "Hello" + name;
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货