Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
-
Unknown
Description
Recently I started using the Apache Cxf lib with the intention of performing the extraction of operation attributes in a WSDL files for SOAP Web Services. That's because before the company where I worked had many problems with the old lib, the Predic8.
However, recently I tried to extract the attributes of a WSDL operation and I was not able to get the expected result. From what I have analyzed with some tests, it is not able to identify the type of the Class of the attributes that have more than one binding. However with some tests I performed, changing the portType of all bindings to the same I was able to get it to interpret correctly.
I believe the problem is occurring when there is more and a binding and each uses a different PortType, since it can only extract the type of classes from the attributes in one of the portTypes.
Please give me a light.
Code used to extract:
public class DynClient { public static void main(String[] args) { JaxWsDynamicClientFactory factory = JaxWsDynamicClientFactory.newInstance(); Client client = factory.createClient("http://intsaprm.hptransportes.com.br:8051/wsConsultaSQL/MEX?wsdl"); for (ServiceInfo service : client.getEndpoint().getService().getServiceInfos()) { for (BindingInfo binding : service.getBindings()) { System.out.println("Binding: " + binding.getName().getLocalPart()); binding.getOperations().forEach(operation -> { if (operation.getInput() != null) { operation.getInput().getMessageParts().forEach(part -> { System.out.println(part.getName().getLocalPart() + "=>" + part.getTypeClass()); }); } if (operation.getOutput() != null) { operation.getOutput().getMessageParts().forEach(part -> { System.out.println(part.getName().getLocalPart() + "=>" + part.getTypeClass()); }); } }); } } } }
When executed:
Binding: RM_IwsBase
parameters=>class com.totvs.CheckServiceActivity
parameters=>class com.totvs.CheckServiceActivityResponse
parameters=>class com.totvs.AutenticaAcesso
parameters=>class com.totvs.AutenticaAcessoResponse
parameters=>class com.totvs.Implements
parameters=>class com.totvs.ImplementsResponse
Binding: RM_IwsConsultaSQL
parameters=>null
parameters=>null
parameters=>null
parameters=>null
parameters=>null
parameters=>null
Binding: RM_IRMSServer
parameters=>null
parameters=>null
parameters=>null
parameters=>null