我定义了一个XML,它提供了序列化XML的有效负载路径。我想获取这些参数并创建一个对象并在类中调用方法。在Java中执行此操作的最佳方法是什么?
XML
<RequestObjectType>com.test.model.QueryType</RequestObjectType>
<Class>com.test.api.Query</Class>
<Method>generalQuery</Method>
public void callRequestViaObj(String payloadXML, String payloadType, String api_className, String method){
Class c_payloadType = Class.forName(payloadType);
Class c_apiClass = Class.forName(api_className);
JAXBElement<c_payloadType> elemreq = (JAXBElement<c_payloadType>) JaxbUtils.XMLtoObj( payloadXML, JAXBContext.newInstance(c_payloadType) );
c_payloadType qreq = (c_payloadType) (elemreq.getValue());
//Would like to do something like this...
c_payloadType.newInstance().callMethod(method).with(qreq);
}
答案 0 :(得分:0)
答案 1 :(得分:0)
有很多工具可以帮到你。其中一个是Castor。
答案 2 :(得分:0)
看起来你只需要调整使用反射API的调用。尝试
c_payloadType.newInstance().getMethod(method, qreq.getClass()).invoke(qreq);
这假设c_payloadType
是Class<?>
的实例,而qreq
是您要传递给方法调用的参数。我不确定你写的JAXB代码是否构造了这两个对象。