我想使用 xmlrpc 传递一个对象,因为这似乎是我可以将一个 Integer 和一个 String 传递给服务器上的方法的唯一可能方式。是否可以使用对象来做到这一点?如果没有,还有其他方法吗?
我曾尝试这样做,但出现此错误:
JavaClient: XML-RPC Consumer Fault #java.io.IOException: unsupported Java type: class Client.Article
这是客户端的代码:
public void addHash()
{
try {
addAuthorName = txtAddAuthorName.getText();
int addArticleNumber = Integer.parseInt(txtAddArticleNumber.getText());
newArticle = new Article(addAuthorName, addArticleNumber);
Vector<Object> addArticleArglist = new Vector<Object>();
addArticleArglist.addElement(newArticle);
System.out.println(newArticle);
// make the call
String callit = ("GetSize.addHash");
articleID = (Integer) client.execute(callit, addArticleArglist);
} // Use XmlRpcException errors
catch (XmlRpcException exception) {
System.err.println("JavaClient: XML-RPC Consumer Fault #"
+ Integer.toString(exception.code) + ": "
+ exception.getCause() + "" + exception.toString());
} catch (Exception exception) {
System.err.println("JavaClient: XML-RPC Consumer Fault #" + exception.toString());
}
这是服务器端的代码,但是通过使用 System.out.println,我发现无论出于何种原因,此方法中的代码都没有被执行:
public void addHash(Article newArticle)
{
theHashtable.addHash(newArticle.getArticleName(), newArticle.getAuthorID());
}
最佳答案
假设您正在使用 ws-xmlrpc
,文档说明如下:
DOM nodes, or JAXB objects, can be transmitted. So are objects implementing the java.io.Serializable interface.
因此,通过声明您的对象可序列化,您就可以传输它。根据你想做什么,好好看看 jaxb 可能是个好主意。
参见 http://ws.apache.org/xmlrpc/了解更多信息。
关于java - 我可以在java中使用xmlrpc传递一个对象吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18301386/