use of javax.xml.ws.BindingProvider in project cxf by apache.
the class JMSClientServerTest method testQueueDecoupledOneWaysConnection.
@Test
public void testQueueDecoupledOneWaysConnection() throws Exception {
QName serviceName = new QName("http://cxf.apache.org/hello_world_jms", "HelloWorldQueueDecoupledOneWaysService");
QName portName = new QName("http://cxf.apache.org/hello_world_jms", "HelloWorldQueueDecoupledOneWaysPort");
URL wsdl = getWSDLURL("/wsdl/jms_test.wsdl");
String wsdl2 = "testutils/jms_test.wsdl".intern();
wsdlStrings.add(wsdl2);
broker.updateWsdl(getBus(), wsdl2);
HelloWorldQueueDecoupledOneWaysService service = new HelloWorldQueueDecoupledOneWaysService(wsdl, serviceName);
Endpoint requestEndpoint = null;
Endpoint replyEndpoint = null;
HelloWorldOneWayPort greeter = service.getPort(portName, HelloWorldOneWayPort.class);
try {
GreeterImplQueueDecoupledOneWays requestServant = new GreeterImplQueueDecoupledOneWays();
requestEndpoint = Endpoint.publish(null, requestServant, new LoggingFeature());
GreeterImplQueueDecoupledOneWaysDeferredReply replyServant = new GreeterImplQueueDecoupledOneWaysDeferredReply();
replyEndpoint = Endpoint.publish(null, replyServant, new LoggingFeature());
BindingProvider bp = (BindingProvider) greeter;
Map<String, Object> requestContext = bp.getRequestContext();
JMSMessageHeadersType requestHeader = new JMSMessageHeadersType();
requestHeader.setJMSReplyTo("dynamicQueues/test.jmstransport.oneway.with.set.replyto.reply");
requestContext.put(JMSConstants.JMS_CLIENT_REQUEST_HEADERS, requestHeader);
String expectedRequest = "JMS:Queue:Request";
greeter.greetMeOneWay(expectedRequest);
String request = requestServant.ackRequestReceived(5000);
if (request == null) {
if (requestServant.getException() != null) {
fail(requestServant.getException().getMessage());
} else {
fail("The oneway call didn't reach its intended endpoint");
}
}
assertEquals(expectedRequest, request);
requestServant.proceedWithReply();
String expectedReply = requestServant.ackReplySent(5000);
if (expectedReply == null) {
if (requestServant.getException() != null) {
fail(requestServant.getException().getMessage());
} else {
fail("The decoupled one-way reply was not sent");
}
}
String reply = replyServant.ackRequest(5000);
if (reply == null) {
if (replyServant.getException() != null) {
fail(replyServant.getException().getMessage());
} else {
fail("The decoupled one-way reply didn't reach its intended endpoint");
}
}
assertEquals(expectedReply, reply);
} catch (Exception ex) {
throw ex;
} finally {
if (requestEndpoint != null) {
requestEndpoint.stop();
}
if (replyEndpoint != null) {
replyEndpoint.stop();
}
((java.io.Closeable) greeter).close();
}
}
use of javax.xml.ws.BindingProvider in project cxf by apache.
the class JMSClientServerTest method testQueueOneWaySpecCompliantConnection.
@Test
public void testQueueOneWaySpecCompliantConnection() throws Throwable {
QName serviceName = new QName("http://cxf.apache.org/hello_world_jms", "HelloWorldQueueDecoupledOneWaysService");
QName portName = new QName("http://cxf.apache.org/hello_world_jms", "HelloWorldQueueDecoupledOneWaysPort");
URL wsdl = getWSDLURL("/wsdl/jms_test.wsdl");
assertNotNull(wsdl);
String wsdlString2 = "testutils/jms_test.wsdl";
wsdlStrings.add(wsdlString2);
broker.updateWsdl(getBus(), wsdlString2);
HelloWorldQueueDecoupledOneWaysService service = new HelloWorldQueueDecoupledOneWaysService(wsdl, serviceName);
assertNotNull(service);
Endpoint requestEndpoint = null;
HelloWorldOneWayPort greeter = service.getPort(portName, HelloWorldOneWayPort.class);
try {
GreeterImplQueueDecoupledOneWays requestServant = new GreeterImplQueueDecoupledOneWays(true);
requestEndpoint = Endpoint.publish(null, requestServant);
BindingProvider bp = (BindingProvider) greeter;
Map<String, Object> requestContext = bp.getRequestContext();
JMSMessageHeadersType requestHeader = new JMSMessageHeadersType();
requestHeader.setJMSReplyTo("dynamicQueues/test.jmstransport.oneway.with.set.replyto.reply");
requestContext.put(JMSConstants.JMS_CLIENT_REQUEST_HEADERS, requestHeader);
String expectedRequest = "JMS:Queue:Request";
greeter.greetMeOneWay(expectedRequest);
String request = requestServant.ackRequestReceived(5000);
if (request == null) {
if (requestServant.getException() != null) {
fail(requestServant.getException().getMessage());
} else {
fail("The oneway call didn't reach its intended endpoint");
}
}
assertEquals(expectedRequest, request);
requestServant.proceedWithReply();
boolean ack = requestServant.ackNoReplySent(5000);
if (!ack) {
if (requestServant.getException() != null) {
Throwable ex = requestServant.getException();
if (ex.getMessage().contains("Request context was not null")) {
return;
}
throw requestServant.getException();
}
fail("The decoupled one-way reply was sent");
}
} catch (Exception ex) {
throw ex;
} finally {
if (requestEndpoint != null) {
requestEndpoint.stop();
}
((java.io.Closeable) greeter).close();
}
}
use of javax.xml.ws.BindingProvider in project cxf by apache.
the class ClientServerSessionTest method doSessionsTest.
private void doSessionsTest(String url) {
GreeterService service = new GreeterService();
assertNotNull(service);
Greeter greeter = service.getGreeterPort();
Greeter greeter2 = service.getGreeterPort();
BindingProvider bp = (BindingProvider) greeter;
bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, url);
bp.getRequestContext().put(BindingProvider.SESSION_MAINTAIN_PROPERTY, true);
bp = (BindingProvider) greeter2;
bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, url);
bp.getRequestContext().put(BindingProvider.SESSION_MAINTAIN_PROPERTY, true);
String result = greeter.greetMe("World");
assertEquals("Hello World", result);
assertEquals("Bonjour World", greeter.sayHi());
result = greeter2.greetMe("Universe");
assertEquals("Hello Universe", result);
assertEquals("Bonjour Universe", greeter2.sayHi());
// make sure session 1 was maintained
assertEquals("Bonjour World", greeter.sayHi());
}
use of javax.xml.ws.BindingProvider in project cxf by apache.
the class ClientServerSessionTest method testInvocationWithPerRequestAnnotation.
@Test
public void testInvocationWithPerRequestAnnotation() throws Exception {
GreeterService service = new GreeterService();
assertNotNull(service);
Greeter greeter = service.getGreeterPort();
BindingProvider bp = (BindingProvider) greeter;
bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://localhost:" + PORT + "/PerRequest");
bp.getRequestContext().put(BindingProvider.SESSION_MAINTAIN_PROPERTY, true);
String result = greeter.greetMe("World");
assertEquals("Hello World", result);
assertEquals("Bonjour default", greeter.sayHi());
}
use of javax.xml.ws.BindingProvider in project cxf by apache.
the class ClientServerSessionTest method testInvocationWithSpringBeanAnnotation.
@Test
public void testInvocationWithSpringBeanAnnotation() throws Exception {
GreeterService service = new GreeterService();
assertNotNull(service);
Greeter greeter = service.getGreeterPort();
BindingProvider bp = (BindingProvider) greeter;
bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://localhost:" + PORT + "/SpringBean");
bp.getRequestContext().put(BindingProvider.SESSION_MAINTAIN_PROPERTY, true);
String result = greeter.greetMe("World");
assertEquals("Hello World", result);
assertEquals("Bonjour World", greeter.sayHi());
}
Aggregations