in taverna-wsdl-generic/src/main/java/org/apache/taverna/wsdl/soap/JaxWSInvoker.java [64:112]
public JaxWSInvoker(WSDLParser parser, String portName, String operationName) {
QName port_qname = null;
for (QName service_name : parser.getServices()) {
loop:
for (String port_name : parser.getPorts(service_name)) {
if (portName == null) {
for (String operation_name : parser.getOperations(port_name)) {
if (operation_name.equals(operationName)) {
port_qname = new QName(port_name);
break loop;
}
}
} else if (portName.equals(port_name)) {
port_qname = new QName(portName);
break;
}
}
if (port_qname != null) {
// found the port in this service
Service service = Service.create(service_name);
String endpoint = parser.getOperationEndpointLocation(port_qname.getLocalPart());
service.addPort(port_qname, SOAPBinding.SOAP11HTTP_BINDING, endpoint); // TODO: SOAP version
dispatch = service.createDispatch(port_qname, SOAPMessage.class, javax.xml.ws.Service.Mode.MESSAGE);
List<Handler> chain = new ArrayList<Handler>();//Arrays.asList(new InvokerHandler());
chain.add(new WSSHandler());
dispatch.getBinding().setHandlerChain(chain);
break;
}
}
// assert(dispatch != null)
if (operationName != null) {
try {
String soapAction = parser.getSOAPActionURI(operationName);
if (soapAction != null) {
Map<String, Object> rc = dispatch.getRequestContext();
rc.put(BindingProvider.SOAPACTION_USE_PROPERTY, Boolean.TRUE);
rc.put(BindingProvider.SOAPACTION_URI_PROPERTY, soapAction);
}
}
catch(Exception ex) {}
}
}