我正在通過傳遞wsdl_URL和操作名稱作爲參數來尋找一些java開源api來生成soap請求xml文件。其實soapUI是這樣做的,我試圖通過soapUI源代碼,但我無法理解整個代碼來完成我的任務。如何從java中的wsdl文件生成SOAP請求xml
是否有任何Java API可以做到這一點(Apache或東西)?
我在網上呆了幾天,沒有看到任何結果。
如果任何機構有任何想法,請幫助我。
在此先感謝。
我正在通過傳遞wsdl_URL和操作名稱作爲參數來尋找一些java開源api來生成soap請求xml文件。其實soapUI是這樣做的,我試圖通過soapUI源代碼,但我無法理解整個代碼來完成我的任務。如何從java中的wsdl文件生成SOAP請求xml
是否有任何Java API可以做到這一點(Apache或東西)?
我在網上呆了幾天,沒有看到任何結果。
如果任何機構有任何想法,請幫助我。
在此先感謝。
您可以使用開源膜SOA庫(http://www.membrane-soa.org/soa-model-doc/1.4/java-api/parse-wsdl-java-api.htm)生成WSDL中定義的每個操作個XML:
public void createTemplates(String url){
WSDLParser parser = new WSDLParser();
Definitions wsdl = parser.parse(url);
StringWriter writer = new StringWriter();
SOARequestCreator creator = new SOARequestCreator();
creator.setBuilder(new MarkupBuilder(writer));
creator.setDefinitions(wsdl);
for (Service service : wsdl.getServices()) {
for (Port port : service.getPorts()) {
Binding binding = port.getBinding();
PortType portType = binding.getPortType();
for (Operation op : portType.getOperations()) {
creator.setCreator(new RequestTemplateCreator());
creator.createRequest(port.getName(), op.getName(), binding.getName());
System.out.println(writer);
writer.getBuffer().setLength(0);
}
}
}
肥皂UI還提供Java Api用於從WSDL創建請求和響應xml。
public static void main(String[] args) throws Exception {
WsdlProject project = new WsdlProject();
WsdlInterface[] wsdls = WsdlImporter.importWsdl(project, "http://localhost:8080/Service?wsdl");
WsdlInterface wsdl = wsdls[0];
for (Operation operation : wsdl.getOperationList()) {
WsdlOperation wsdlOperation = (WsdlOperation) operation;
System.out.println("Request:\n"+wsdlOperation.createRequest(true));
System.out.println("\nResponse:\n"+wsdlOperation.createResponse(true));
}
}
肥皂UI的Developer's corner具有與肥皂UI API整合好的指針。
你好本傑明,謝謝你的回覆。我沒有找到任何有用的java API來創建soapUI中的請求XML文件。他們正在談論ServiceClient類,但我不明白如何使用該類。 – srini
我如何使用soap和java工作的一般方法是從你的wsdl生成一個對象模型,並與之對抗。像這樣http://ws.apache.org/axis/java/user-guide.html#WSDL2JavaBuildingStubsSkeletonsAndDataTypesFromWSDL –