public void _testGenericSOAPBindingOperation() { // REVIEW: Currently generic operations are not supported for SOAP Bindings ServiceDescription serviceDesc = DescriptionFactory.createServiceDescription(SOAPBindingProviderImpl.class); assertNotNull(serviceDesc); EndpointDescription endpointDesc = serviceDesc.getEndpointDescriptions_AsCollection().iterator().next(); assertNotNull(endpointDesc); AxisService axisSvc = endpointDesc.getAxisService(); assertNotNull(axisSvc); // Since there's no WSDL, there will be no operations and no EndpointInterfaceDescription // because this is a SOAPBinding. EndpointInterfaceDescription interfaceDesc = endpointDesc.getEndpointInterfaceDescription(); assertNull(interfaceDesc); }
public void testSEIBasedEndpoint() { ServiceDescription serviceDesc = DescriptionFactory.createServiceDescription(SEIBasedEndpoint.class); assertNotNull(serviceDesc); EndpointDescription endpointDesc = serviceDesc.getEndpointDescriptions_AsCollection().iterator().next(); assertNotNull(endpointDesc); AxisService axisSvc = endpointDesc.getAxisService(); assertNotNull(axisSvc); EndpointInterfaceDescription interfaceDesc = endpointDesc.getEndpointInterfaceDescription(); assertNotNull(interfaceDesc); // There should be a single OpDesc with a single AxisOperation based on the SEI below // But it should not be the special named operation and the special dispatcher should not // return null for operation dispatch OperationDescription opDescs[] = interfaceDesc.getOperations(); assertNotNull(opDescs); assertEquals(1, opDescs.length); AxisOperation axisOperation = opDescs[0].getAxisOperation(); assertNotNull(axisOperation); if (EndpointInterfaceDescription.JAXWS_NOWSDL_PROVIDER_OPERATION_NAME.equals( axisOperation.getName().getLocalPart())) { fail("Operation has the generic provider name"); } // Now verify that the special dispather doesn't find the special operation GenericProviderDispatcher dispatcher = new GenericProviderDispatcher(); MessageContext messageContext = new MessageContext(); messageContext.setAxisService(axisSvc); try { // The dispatcher will not try to resolve an AxisService assertNull(dispatcher.findService(messageContext)); // The dispatcher should find the special AxisOperation assertNull(dispatcher.findOperation(axisSvc, messageContext)); } catch (AxisFault e) { fail("Unexpected exception" + e); } }
public void testGenericHTTPBindingOperation() { // The HTTP binding supports a generic operation for WSDL-less endpoints. ServiceDescription serviceDesc = DescriptionFactory.createServiceDescription(HTTPBindingProviderImpl.class); assertNotNull(serviceDesc); EndpointDescription endpointDesc = serviceDesc.getEndpointDescriptions_AsCollection().iterator().next(); assertNotNull(endpointDesc); AxisService axisSvc = endpointDesc.getAxisService(); assertNotNull(axisSvc); EndpointInterfaceDescription interfaceDesc = endpointDesc.getEndpointInterfaceDescription(); assertNotNull(interfaceDesc); // There should be a single OpDesc with a single AxisOperation with a specific name OperationDescription opDescs[] = interfaceDesc.getOperations(); assertNotNull(opDescs); assertEquals(1, opDescs.length); AxisOperation axisOperation = opDescs[0].getAxisOperation(); assertNotNull(axisOperation); assertEquals( EndpointInterfaceDescription.JAXWS_NOWSDL_PROVIDER_OPERATION_NAME, axisOperation.getName().getLocalPart()); // Now verify that the special dispather can find this operation GenericProviderDispatcher dispatcher = new GenericProviderDispatcher(); MessageContext messageContext = new MessageContext(); messageContext.setAxisService(axisSvc); try { // The dispatcher will not try to resolve an AxisService assertNull(dispatcher.findService(messageContext)); // The dispatcher should find the special AxisOperation assertEquals(axisOperation, dispatcher.findOperation(axisSvc, messageContext)); } catch (AxisFault e) { fail("Unexpected exception" + e); } }