我需要将数据协定从Java客户端传递到wcf webservice。数据合约有2个字段均为字符串。创建代理后,我正在尝试的代码如下

FileTransfer fs = new FileTransfer(); // 1 -- This is my service
IFileTransfer ifs = fs.getBasicHttpBindingIFileTransfer();//2
ServiceMessage request = new ServiceMessage();//3
ObjectFactory factory = new ObjectFactory();//4
JAXBElement<String> createString2 = factory.createString("myimg.txt");//5
request.setFileName(createString2);//6
System.out.println(createString2.toString()); //7


这里serviceMessage是数据合同。在键入“请求”时。在日食中,我看到一个setfilename方法(文件名是数据成员之一)来添加我要传递的字符串。但是它仅接受JAXBElement类型,而不接受字符串。因此,在第4和第5行中,我尝试将字符串转换为JAXBElement并将其传递给服务。但是在第7行中,我没有读取在第5行中设置的文件名。相反,在第7行中,输出的内容类似于javax.xml.bind.JAXBElement@24ee50b4。

我无能为力..请帮助

最佳答案

尝试

System.out.println(createString2.getValue());


因为您要打印值String,而不是JAXBElement实例。

10-02 01:35