private static void addSchemas(WSDLDefinition wsdlDef, AxisService axisService) { for (XSDefinition xsDef : wsdlDef.getXmlSchemas()) { if (xsDef.getSchema() != null) { axisService.addSchema(xsDef.getSchema()); updateSchemaRefs(xsDef.getSchema(), axisService.getName()); } } for (WSDLDefinition impDef : wsdlDef.getImportedDefinitions()) { addSchemas(impDef, axisService); } }
private static void modifySchemaImportsAndIncludes(Definition definition, String name) { // adjust the schema locations in types section Types types = definition.getTypes(); if (types != null) { for (Iterator iter = types.getExtensibilityElements().iterator(); iter.hasNext();) { Object ext = iter.next(); if (ext instanceof UnknownExtensibilityElement && XSD_QNAME_LIST .contains(((UnknownExtensibilityElement)ext).getElementType())) { changeLocations(((UnknownExtensibilityElement)ext).getElement(), name); } } } for (Iterator iter = definition.getImports().values().iterator(); iter.hasNext();) { Vector values = (Vector)iter.next(); for (Iterator valuesIter = values.iterator(); valuesIter.hasNext();) { Import wsdlImport = (Import)valuesIter.next(); modifySchemaImportsAndIncludes(wsdlImport.getDefinition(), name); } } }
private void createAxisService(String endpointURL, Port port) throws AxisFault { AxisService axisService; if (wsBinding.getGeneratedWSDLDocument() != null) { axisService = Axis2EngineIntegration.createWSDLAxisService(endpointURL, port, wsBinding); } else { axisService = Axis2EngineIntegration.createJavaAxisService(endpointURL, configContext, service); } Axis2EngineIntegration.createAxisServiceProviders(axisService, endpoint, wsBinding, extensionPoints); configContext.getAxisConfiguration().addService(axisService); } }
contract.getInterface().resetDataBinding(OMElement.class.getName()); configContext = Axis2EngineIntegration.getAxisConfigurationContext(extensionPoints.getServiceDiscovery()); endpointURI = Axis2EngineIntegration.getPortAddress(wsdlPort); Axis2EngineIntegration.setPortAddress(wsdlPort, deployedURI); Axis2EngineIntegration.loadRampartModule(configContext);
Definition def = getDefinition(definition, serviceQName); addSchemas(wsBinding.getUserSpecifiedWSDLDefinition(), axisService); modifySchemaImportsAndIncludes(definition, name);
public void start() { configContext = Axis2EngineIntegration.getAxisConfigurationContext(extensionPoints.getServiceDiscovery()); Axis2EngineIntegration.loadRampartModule(configContext); axisClientSideService = Axis2EngineIntegration.createClientSideAxisService(definition, serviceQName, port.getName(), new Options());
for (Object s : definition.getServices().values()) { for (Object p : ((Service)s).getPorts().values()) { String endpointURL = Axis2EngineIntegration.getPortAddress((Port)p); String modifiedURL = setIPAddress(endpointURL, url); modifiedURL = addContextRoot(modifiedURL, serviceName); Axis2EngineIntegration.setPortAddress((Port)p, modifiedURL);
/** * Workaround for https://issues.apache.org/jira/browse/AXIS2-3205 */ private static Definition getDefinition(Definition definition, QName serviceName) { if (serviceName == null) { return definition; } if (definition == null) { return null; } Object service = definition.getServices().get(serviceName); if (service != null) { return definition; } for (Object i : definition.getImports().values()) { List<Import> imports = (List<Import>)i; for (Import imp : imports) { Definition d = getDefinition(imp.getDefinition(), serviceName); if (d != null) { return d; } } } return null; }
public static void createAxisServiceProviders(AxisService axisService, RuntimeEndpoint endpoint, WebServiceBinding wsBinding, ExtensionPointRegistry extensionPoints) { for (Iterator<?> i = axisService.getOperations(); i.hasNext();) { AxisOperation axisOp = (AxisOperation)i.next(); Operation op = getOperation(axisOp, wsBinding); if (op != null) { if (op.isNonBlocking()) { axisOp.setMessageExchangePattern(WSDL2Constants.MEP_URI_IN_ONLY); } else { axisOp.setMessageExchangePattern(WSDL2Constants.MEP_URI_IN_OUT); } MessageReceiver msgrec = null; TuscanyServiceProvider serviceProvider = new TuscanyServiceProvider(extensionPoints, endpoint, wsBinding, op); if (op.isNonBlocking()) { msgrec = new Axis2ServiceInMessageReceiver(serviceProvider); } else { msgrec = new Axis2ServiceInOutSyncMessageReceiver(serviceProvider); } axisOp.setMessageReceiver(msgrec); } } }
String portName, Options options) throws AxisFault { Definition def = getDefinition(definition, serviceName); final WSDL11ToAxisServiceBuilder serviceBuilder = new WSDL11ToAxisServiceBuilder(def, serviceName, portName); serviceBuilder.setServerSide(false);