我正在编写一个将在 WebSphere 上运行的 Java Web 服务客户端。我在 RAD Developer 中创建了一个新的“Web Service Client”项目,给它我的 WSDL,指定“Top down Java Bean”,然后它自动生成了一堆文件。
其中一项操作是“GetAddressData”。RAD 开发人员自动生成“GetAddressData.java”和“GetAddressDataResonse.java”,两者都使用“XmlRootElement”进行注释。
“GetAddressData”中的参数之一是“RequestData”,这是一个由四个字符串组成的简单对象:worfklow、module、username 和 id。RAD Developer 也为我生成了一个“RequestData.java”。
问:有什么方法可以用原始 XML 替换 JAXB“RequestData”对象,而不是一次打包和解包记录一个字段?
我试过这样的事情:
private static String theXml =
"<requestOptions>\n" +
" <WorkflowName>unmarshalTestWorkflow</WorkflowName>\n" +
" <ModuleName>unmarshalTestModule</ModuleName>\n" +
" <UserName>unmarshalTestName</UserName>\n" +
" <TransactionId>0099</TransactionId>\n" +
"</requestOptions>\n";
private RequestOptions mkRequestOptions () throws Exception {
JAXBContext context = JAXBContext.newInstance(RequestOptions.class);
Unmarshaller unmarshaller = context.createUnmarshaller();
Object obj = unmarshaller.unmarshal(new StringReader (theXml));
RequestOptions requestOptions = (RequestOptions)obj;
...
但我不断得到:
error: Unexpected element "requestOptions". Expected elements are "".
任何帮助将不胜感激!先感谢您。