use of jakarta.xml.ws.RespectBindingFeature in project metro-jax-ws by eclipse-ee4j.
the class WebServiceFeatureList method getFeature.
/**
* Returns a corresponding feature for a feature annotation(i.e which has
* {@link WebServiceFeatureAnnotation} meta annotation)
*
* @return corresponding feature for the annotation
* null, if the annotation is nota feature annotation
*/
public static WebServiceFeature getFeature(Annotation a) {
WebServiceFeature ftr = null;
if (!(a.annotationType().isAnnotationPresent(WebServiceFeatureAnnotation.class))) {
ftr = null;
} else if (a instanceof Addressing) {
Addressing addAnn = (Addressing) a;
try {
ftr = new AddressingFeature(addAnn.enabled(), addAnn.required(), addAnn.responses());
} catch (NoSuchMethodError e) {
// throw error. We can't default to Responses.ALL as we dont know if the user has not used 2.2 annotation with responses.
throw new RuntimeModelerException(ModelerMessages.RUNTIME_MODELER_ADDRESSING_RESPONSES_NOSUCHMETHOD(toJar(Which.which(Addressing.class))));
}
} else if (a instanceof MTOM) {
MTOM mtomAnn = (MTOM) a;
ftr = new MTOMFeature(mtomAnn.enabled(), mtomAnn.threshold());
} else if (a instanceof RespectBinding) {
RespectBinding rbAnn = (RespectBinding) a;
ftr = new RespectBindingFeature(rbAnn.enabled());
} else {
ftr = getWebServiceFeatureBean(a);
}
return ftr;
}
use of jakarta.xml.ws.RespectBindingFeature in project metro-jax-ws by eclipse-ee4j.
the class AddNumbersClient method createDispatchWithWSDL.
private Dispatch<SOAPMessage> createDispatchWithWSDL() throws Exception {
MemberSubmissionAddressingFeature msAddressingFeature = new MemberSubmissionAddressingFeature(true);
RespectBindingFeature respectBindingFeature = new RespectBindingFeature(true);
WebServiceFeature[] features = new WebServiceFeature[] { msAddressingFeature, respectBindingFeature };
AddNumbersService service = new AddNumbersService();
return service.createDispatch(PORT_QNAME, SOAPMessage.class, Service.Mode.MESSAGE);
}
use of jakarta.xml.ws.RespectBindingFeature in project metro-jax-ws by eclipse-ee4j.
the class AddNumbersClient method testBadActionWithWSDL.
public void testBadActionWithWSDL() throws Exception {
try {
RespectBindingFeature respectBindingFeature = new RespectBindingFeature(false);
WebServiceFeature[] features = new WebServiceFeature[] { respectBindingFeature };
Dispatch dispatch = createDispatchWithWSDL(features);
BindingImpl binding = (BindingImpl) dispatch.getBinding();
assertTrue(AddressingVersion.isEnabled(binding));
WsaUtils.invoke(dispatch, WsaUtils.BAD_ACTION_MESSAGE, WsaUtils.S11_NS, WsaUtils.W3C_WSA_NS, getAddress(), W3CAddressingConstants.WSA_ANONYMOUS_ADDRESS);
fail("SOAPFaultException must be thrown");
} catch (SOAPFaultException sfe) {
assertFault(sfe, W3CAddressingConstants.ACTION_NOT_SUPPORTED_QNAME);
}
}
use of jakarta.xml.ws.RespectBindingFeature in project metro-jax-ws by eclipse-ee4j.
the class AddNumbersClient method testFaultToRefpsWithWSDL.
// bug RespectBindingFeature will turn off enabled features in the wsdl
// but not features that have been explicitly set by the client
public void testFaultToRefpsWithWSDL() throws Exception {
try {
MemberSubmissionAddressingFeature addressingFeature = new MemberSubmissionAddressingFeature(true);
RespectBindingFeature bindingFeature = new RespectBindingFeature(false);
WebServiceFeature[] features = new WebServiceFeature[] { addressingFeature, bindingFeature };
Dispatch dispatch = createDispatchWithWSDL(features);
BindingImpl binding = (BindingImpl) dispatch.getBinding();
boolean enabled = AddressingVersion.isEnabled(binding);
if (enabled) {
System.out.println("Addressing is Enabled");
} else {
System.out.println("Addressing is disabled");
}
assertTrue(enabled == true);
WsaUtils.invoke(dispatch, WsaUtils.FAULT_TO_REFPS_MESSAGE, WsaUtils.S11_NS, WsaUtils.W3C_WSA_NS, getAddress(), W3CAddressingConstants.WSA_ANONYMOUS_ADDRESS, W3CAddressingConstants.WSA_ANONYMOUS_ADDRESS, CORRECT_ACTION);
fail("SOAPFaultException must be thrown");
} catch (SOAPFaultException sfe) {
assertTrue("Got SOAPFaultException", true);
}
}
Aggregations