gpt4 book ai didi

java - 使用 apache xml rpc 客户端 3.1.3 发送复杂类型

转载 作者:太空宇宙 更新时间:2023-11-04 08:24:34 27 4
gpt4 key购买 nike

所以我尝试用 Java 向 Moses xml-rpc 服务器发送 xml-rpc 消息,但不断收到错误:

org.apache.xmlrpc.XmlRpcException: Parameter that is supposed to be a structure is not

我正在使用 http://ws.apache.org/xmlrpc/client.html 中的 Apache xmlrpc 客户端 3.1.3 。我的猜测是参数定义不兼容,但在尝试使用不同类型作为输入后,输出仍然相同。我有一个客户端示例,但它是用 perl 编写的:

#!/usr/bin/env perl

use Encode;
use XMLRPC::Lite;
use utf8;

$url = "http://localhost:8080/RPC2";
$proxy = XMLRPC::Lite->proxy($url);

$text = "il a souhaité que la présidence trace à nice le chemin pour l' avenir .";

# Work-around for XMLRPC::Lite bug
$encoded = SOAP::Data->type(string => Encode::encode("utf8",$text));

my %param = ("text" => $encoded, "align" => "true");
$result = $proxy->call("translate",\%param)->result;
print $result->{'text'} . "\n";
if ($result->{'align'}) {
print "Phrase alignments: \n";
$aligns = $result->{'align'};
foreach my $align (@$aligns) {
print $align->{'tgt-start'} . "," . $align->{'src-start'} . ","
. $align->{'src-end'} . "\n";
}
}

这是我的代码:

XmlRpcClientConfigImpl tConf = new XmlRpcClientConfigImpl();
try {
tConf.setServerURL(new URL("http://127.0.0.1:8080/RPC2"));
tConf.setBasicEncoding("UTF-8");
} catch (MalformedURLException ex) {
ex.printStackTrace(System.out);
}
XmlRpcClient tClient = new XmlRpcClient();
tClient.setConfig(tConf);

List<List<String>> tInPar = new ArrayList<>();
tInPar.add(Arrays.asList(new String[]{"text", "hello"}));
tInPar.add(Arrays.asList(new String[]{"align", "true"}));

String tResult = null;
try {
tResult = (String) tClient.execute("translate", tInPar);
} catch (XmlRpcException ex) {
ex.printStackTrace(System.out);
}

正确吗?

感谢您的帮助

最佳答案

在查阅了moses邮件列表后,我得到了moses服务器的java客户端示例:https://github.com/moses-smt/mosesdecoder/blob/master/contrib/server/SampleClient.java

谢谢

关于java - 使用 apache xml rpc 客户端 3.1.3 发送复杂类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8870122/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com