public JaxWSInvoker()

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) {}
        }
    }