You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by co...@apache.org on 2019/05/03 16:03:27 UTC
[cxf] branch master updated: CXF-7885 - SOAP Action ignored by CXF
JMS webservice method invoker
This is an automated email from the ASF dual-hosted git repository.
coheigea pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cxf.git
The following commit(s) were added to refs/heads/master by this push:
new 083c6fa CXF-7885 - SOAP Action ignored by CXF JMS webservice method invoker
083c6fa is described below
commit 083c6fa2bb4e674d263e41ac65d84ef30f21e5d2
Author: Colm O hEigeartaigh <co...@apache.org>
AuthorDate: Fri May 3 16:05:20 2019 +0100
CXF-7885 - SOAP Action ignored by CXF JMS webservice method invoker
---
.../soap/interceptor/SoapActionInInterceptor.java | 7 ++
.../soap/jms/interceptor/SoapJMSInInterceptor.java | 5 +
.../apache/cxf/systest/jms/TwoWayJMSImplBase.java | 10 +-
.../cxf/systest/jms/action/JMSSoapActionTest.java | 137 +++++++++++++++++++++
.../Server.java} | 31 +++--
.../SoapActionGreeterImplTwoWayJMS.java} | 13 +-
.../jms/security/SecurityGreeterImplTwoWayJMS.java | 2 +
.../systest/jms/security/TwoWayJMSImplBase.java | 117 ------------------
testutils/src/main/resources/wsdl/jms_test.wsdl | 39 ++++++
9 files changed, 230 insertions(+), 131 deletions(-)
diff --git a/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapActionInInterceptor.java b/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapActionInInterceptor.java
index 6dc5cfe..b0c2efa 100644
--- a/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapActionInInterceptor.java
+++ b/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapActionInInterceptor.java
@@ -29,6 +29,7 @@ import org.apache.cxf.binding.soap.Soap11;
import org.apache.cxf.binding.soap.Soap12;
import org.apache.cxf.binding.soap.SoapBindingConstants;
import org.apache.cxf.binding.soap.SoapMessage;
+import org.apache.cxf.binding.soap.jms.interceptor.SoapJMSInInterceptor;
import org.apache.cxf.binding.soap.model.SoapOperationInfo;
import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.common.util.StringUtils;
@@ -111,6 +112,12 @@ public class SoapActionInInterceptor extends AbstractSoapInterceptor {
return ct.substring(start, end);
}
}
+
+ // Return the Soap Action for the JMS Case
+ if (message.containsKey(SoapJMSInInterceptor.JMS_SOAP_ACTION_VALUE)) {
+ return (String)message.get(SoapJMSInInterceptor.JMS_SOAP_ACTION_VALUE);
+ }
+
return null;
}
diff --git a/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/jms/interceptor/SoapJMSInInterceptor.java b/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/jms/interceptor/SoapJMSInInterceptor.java
index 44b11ce..f6509ec 100644
--- a/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/jms/interceptor/SoapJMSInInterceptor.java
+++ b/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/jms/interceptor/SoapJMSInInterceptor.java
@@ -37,6 +37,8 @@ import org.apache.cxf.phase.Phase;
*/
public class SoapJMSInInterceptor extends AbstractSoapInterceptor {
+ public static final String JMS_SOAP_ACTION_VALUE = "jms.soap.action.value";
+
public SoapJMSInInterceptor() {
super(Phase.RECEIVE);
addAfter(AttachmentInInterceptor.class.getName());
@@ -139,6 +141,9 @@ public class SoapJMSInInterceptor extends AbstractSoapInterceptor {
throw f;
}
}
+ if (soapAction != null) {
+ message.put(JMS_SOAP_ACTION_VALUE, soapAction);
+ }
}
/**
diff --git a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/TwoWayJMSImplBase.java b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/TwoWayJMSImplBase.java
index c131346..cbd6abb 100644
--- a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/TwoWayJMSImplBase.java
+++ b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/TwoWayJMSImplBase.java
@@ -40,6 +40,7 @@ public class TwoWayJMSImplBase implements HelloWorldPortType {
@Resource
protected WebServiceContext wsContext;
+
public String greetMe(String me) {
if (me.startsWith("PauseForTwoSecs")) {
try {
@@ -50,11 +51,16 @@ public class TwoWayJMSImplBase implements HelloWorldPortType {
me = me.substring("PauseForTwoSecs".length()).trim();
}
+ addToReply("Test_Prop", "some return value " + me);
+
+ return "Hello " + me;
+ }
+
+ private void addToReply(String key, String value) {
MessageContext mc = wsContext.getMessageContext();
JMSMessageHeadersType responseHeaders =
(JMSMessageHeadersType) mc.get(JMSConstants.JMS_SERVER_RESPONSE_HEADERS);
- responseHeaders.putProperty("Test_Prop", "some return value " + me);
- return "Hello " + me;
+ responseHeaders.putProperty(key, value);
}
public String sayHi() {
diff --git a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/action/JMSSoapActionTest.java b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/action/JMSSoapActionTest.java
new file mode 100644
index 0000000..59c39da
--- /dev/null
+++ b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/action/JMSSoapActionTest.java
@@ -0,0 +1,137 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.systest.jms.action;
+
+
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.BindingProvider;
+
+import org.apache.cxf.BusFactory;
+import org.apache.cxf.ext.logging.LoggingInInterceptor;
+import org.apache.cxf.ext.logging.LoggingOutInterceptor;
+import org.apache.cxf.frontend.ClientProxy;
+import org.apache.cxf.hello_world_jms.HelloWorldPortType;
+import org.apache.cxf.hello_world_jms.HelloWorldService;
+import org.apache.cxf.testutil.common.AbstractBusClientServerTestBase;
+import org.apache.cxf.testutil.common.EmbeddedJMSBrokerLauncher;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertSame;
+
+
+/**
+ * Some tests for sending a SOAP Action with JMS
+ */
+public class JMSSoapActionTest extends AbstractBusClientServerTestBase {
+ public static final String PORT = allocatePort(JMSSoapActionTest.class);
+
+ private static EmbeddedJMSBrokerLauncher broker;
+ private List<String> wsdlStrings = new ArrayList<>();
+
+ @BeforeClass
+ public static void startServers() throws Exception {
+ broker = new EmbeddedJMSBrokerLauncher("tcp://localhost:" + PORT);
+ launchServer(broker);
+ launchServer(new Server(broker));
+ createStaticBus();
+ }
+
+ @Before
+ public void setUp() throws Exception {
+ assertSame(getStaticBus(), BusFactory.getThreadDefaultBus(false));
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ wsdlStrings.clear();
+ }
+
+ public URL getWSDLURL(String s) throws Exception {
+ URL u = getClass().getResource(s);
+ if (u == null) {
+ throw new IllegalArgumentException("WSDL classpath resource not found " + s);
+ }
+ String wsdlString = u.toString().intern();
+ wsdlStrings.add(wsdlString);
+ broker.updateWsdl(getBus(), wsdlString);
+ return u;
+ }
+
+ @Test
+ public void testSayHi() throws Exception {
+ QName serviceName = new QName("http://cxf.apache.org/hello_world_jms", "HelloWorldServiceSoapAction");
+ QName portName = new QName("http://cxf.apache.org/hello_world_jms", "HelloWorldPort");
+ URL wsdl = getWSDLURL("/wsdl/jms_test.wsdl");
+ HelloWorldService service = new HelloWorldService(wsdl, serviceName);
+
+ String response = new String("Bonjour");
+ HelloWorldPortType greeter = service.getPort(portName, HelloWorldPortType.class);
+
+ ClientProxy.getClient(greeter).getOutInterceptors().add(new LoggingOutInterceptor());
+ ClientProxy.getClient(greeter).getOutInterceptors().add(new LoggingInInterceptor());
+
+ ((BindingProvider)greeter).getRequestContext().put(BindingProvider.SOAPACTION_USE_PROPERTY, "true");
+ ((BindingProvider)greeter).getRequestContext().put(
+ BindingProvider.SOAPACTION_URI_PROPERTY, "SAY_HI_1"
+ );
+
+ String reply = greeter.sayHi();
+ assertNotNull("no response received from service", reply);
+ assertEquals(response, reply);
+
+ ((java.io.Closeable)greeter).close();
+ }
+
+ @Test
+ public void testSayHi2() throws Exception {
+ QName serviceName = new QName("http://cxf.apache.org/hello_world_jms", "HelloWorldServiceSoapAction");
+ QName portName = new QName("http://cxf.apache.org/hello_world_jms", "HelloWorldPort");
+ URL wsdl = getWSDLURL("/wsdl/jms_test.wsdl");
+ HelloWorldService service = new HelloWorldService(wsdl, serviceName);
+
+ String response = new String("Bonjour2");
+ HelloWorldPortType greeter = service.getPort(portName, HelloWorldPortType.class);
+
+ ClientProxy.getClient(greeter).getOutInterceptors().add(new LoggingOutInterceptor());
+ ClientProxy.getClient(greeter).getOutInterceptors().add(new LoggingInInterceptor());
+
+ ((BindingProvider)greeter).getRequestContext().put(BindingProvider.SOAPACTION_USE_PROPERTY, "true");
+ ((BindingProvider)greeter).getRequestContext().put(
+ BindingProvider.SOAPACTION_URI_PROPERTY, "SAY_HI_2"
+ );
+
+ String reply = greeter.sayHi();
+ assertNotNull("no response received from service", reply);
+ assertEquals(response, reply);
+
+ ((java.io.Closeable)greeter).close();
+ }
+
+
+}
diff --git a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/security/SecurityGreeterImplTwoWayJMS.java b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/action/Server.java
similarity index 52%
copy from systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/security/SecurityGreeterImplTwoWayJMS.java
copy to systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/action/Server.java
index dc6e3bf..8180823 100644
--- a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/security/SecurityGreeterImplTwoWayJMS.java
+++ b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/action/Server.java
@@ -16,15 +16,30 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.cxf.systest.jms.security;
+package org.apache.cxf.systest.jms.action;
-import javax.jws.WebService;
+import javax.xml.ws.Endpoint;
-@WebService(serviceName = "HelloWorldService",
- portName = "HelloWorldPort",
- endpointInterface = "org.apache.cxf.hello_world_jms.HelloWorldPortType",
- targetNamespace = "http://cxf.apache.org/hello_world_jms",
- wsdlLocation = "testutils/jms_test.wsdl")
-public class SecurityGreeterImplTwoWayJMS extends TwoWayJMSImplBase {
+import org.apache.cxf.Bus;
+import org.apache.cxf.BusFactory;
+import org.apache.cxf.testutil.common.AbstractBusTestServerBase;
+import org.apache.cxf.testutil.common.EmbeddedJMSBrokerLauncher;
+
+public class Server extends AbstractBusTestServerBase {
+ public static final String PORT = allocatePort(Server.class);
+
+ EmbeddedJMSBrokerLauncher broker;
+ public Server(EmbeddedJMSBrokerLauncher b) {
+ broker = b;
+ }
+
+ protected void run() {
+ Bus bus = BusFactory.getDefaultBus();
+ setBus(bus);
+
+ broker.updateWsdl(bus, "testutils/jms_test.wsdl");
+
+ Endpoint.publish(null, new SoapActionGreeterImplTwoWayJMS());
+ }
}
diff --git a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/security/SecurityGreeterImplTwoWayJMS.java b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/action/SoapActionGreeterImplTwoWayJMS.java
similarity index 76%
copy from systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/security/SecurityGreeterImplTwoWayJMS.java
copy to systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/action/SoapActionGreeterImplTwoWayJMS.java
index dc6e3bf..5e4a491 100644
--- a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/security/SecurityGreeterImplTwoWayJMS.java
+++ b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/action/SoapActionGreeterImplTwoWayJMS.java
@@ -16,15 +16,20 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.cxf.systest.jms.security;
+package org.apache.cxf.systest.jms.action;
import javax.jws.WebService;
-@WebService(serviceName = "HelloWorldService",
+import org.apache.cxf.systest.jms.TwoWayJMSImplBase;
+
+@WebService(serviceName = "HelloWorldServiceSoapAction",
portName = "HelloWorldPort",
- endpointInterface = "org.apache.cxf.hello_world_jms.HelloWorldPortType",
+ endpointInterface = "org.apache.cxf.hello_world_jms.HelloWorldSoapActionPortType",
targetNamespace = "http://cxf.apache.org/hello_world_jms",
wsdlLocation = "testutils/jms_test.wsdl")
-public class SecurityGreeterImplTwoWayJMS extends TwoWayJMSImplBase {
+public class SoapActionGreeterImplTwoWayJMS extends TwoWayJMSImplBase {
+ public String sayHi2() {
+ return "Bonjour2";
+ }
}
diff --git a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/security/SecurityGreeterImplTwoWayJMS.java b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/security/SecurityGreeterImplTwoWayJMS.java
index dc6e3bf..bf3b7e0 100644
--- a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/security/SecurityGreeterImplTwoWayJMS.java
+++ b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/security/SecurityGreeterImplTwoWayJMS.java
@@ -20,6 +20,8 @@ package org.apache.cxf.systest.jms.security;
import javax.jws.WebService;
+import org.apache.cxf.systest.jms.TwoWayJMSImplBase;
+
@WebService(serviceName = "HelloWorldService",
portName = "HelloWorldPort",
endpointInterface = "org.apache.cxf.hello_world_jms.HelloWorldPortType",
diff --git a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/security/TwoWayJMSImplBase.java b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/security/TwoWayJMSImplBase.java
deleted file mode 100644
index c35d3a4..0000000
--- a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/security/TwoWayJMSImplBase.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.cxf.systest.jms.security;
-
-import java.util.concurrent.Future;
-
-import javax.annotation.Resource;
-import javax.xml.ws.AsyncHandler;
-import javax.xml.ws.Response;
-import javax.xml.ws.WebServiceContext;
-import javax.xml.ws.handler.MessageContext;
-
-import org.apache.cxf.hello_world_jms.BadRecordLitFault;
-import org.apache.cxf.hello_world_jms.HelloWorldPortType;
-import org.apache.cxf.hello_world_jms.NoSuchCodeLitFault;
-import org.apache.cxf.hello_world_jms.types.BadRecordLit;
-import org.apache.cxf.hello_world_jms.types.ErrorCode;
-import org.apache.cxf.hello_world_jms.types.NoSuchCodeLit;
-import org.apache.cxf.hello_world_jms.types.TestRpcLitFaultResponse;
-import org.apache.cxf.transport.jms.JMSConstants;
-import org.apache.cxf.transport.jms.JMSMessageHeadersType;
-
-public class TwoWayJMSImplBase implements HelloWorldPortType {
-
- @Resource
- protected WebServiceContext wsContext;
-
- public String greetMe(String me) {
- if (me.startsWith("PauseForTwoSecs")) {
- try {
- Thread.sleep(2000);
- } catch (InterruptedException e) {
- //ignore
- }
- me = me.substring("PauseForTwoSecs".length()).trim();
- }
-
- addToReply("Test_Prop", "some return value " + me);
-
- return "Hello " + me;
- }
-
- private void addToReply(String key, String value) {
- MessageContext mc = wsContext.getMessageContext();
- JMSMessageHeadersType responseHeaders =
- (JMSMessageHeadersType) mc.get(JMSConstants.JMS_SERVER_RESPONSE_HEADERS);
- responseHeaders.putProperty(key, value);
- }
-
- public String sayHi() {
- return "Bonjour";
- }
-
- public void greetMeOneWay(String requestType) {
- //System.out.println("********* greetMeOneWay: " + requestType);
- }
-
- public TestRpcLitFaultResponse testRpcLitFault(String faultType)
- throws BadRecordLitFault, NoSuchCodeLitFault {
- BadRecordLit badRecord = new BadRecordLit();
- badRecord.setReason("BadRecordLitFault");
- if (faultType.equals(BadRecordLitFault.class.getSimpleName())) {
- throw new BadRecordLitFault("TestBadRecordLit", badRecord);
- }
- if (faultType.equals(NoSuchCodeLitFault.class.getSimpleName())) {
- ErrorCode ec = new ErrorCode();
- ec.setMajor((short)1);
- ec.setMinor((short)1);
- NoSuchCodeLit nscl = new NoSuchCodeLit();
- nscl.setCode(ec);
- throw new NoSuchCodeLitFault("TestNoSuchCodeLit", nscl);
- }
-
- return new TestRpcLitFaultResponse();
- }
-
- public Response<String> greetMeAsync(String stringParam0) {
- return null;
- }
-
- public Future<?> greetMeAsync(String stringParam0, AsyncHandler<String> asyncHandler) {
- return null;
- }
-
- public Response<String> sayHiAsync() {
- return null;
- }
-
- public Future<?> sayHiAsync(AsyncHandler<String> asyncHandler) {
- return null;
- }
-
- public Response<TestRpcLitFaultResponse> testRpcLitFaultAsync(String in) {
- return null;
- }
-
- public Future<?> testRpcLitFaultAsync(String in, AsyncHandler<TestRpcLitFaultResponse> asyncHandler) {
- return null;
- }
-
-}
diff --git a/testutils/src/main/resources/wsdl/jms_test.wsdl b/testutils/src/main/resources/wsdl/jms_test.wsdl
index 87099d0..12aec18 100644
--- a/testutils/src/main/resources/wsdl/jms_test.wsdl
+++ b/testutils/src/main/resources/wsdl/jms_test.wsdl
@@ -102,6 +102,16 @@
<fault name="BadRecordLitFault" message="tns:BadRecordLitFault"/>
</operation>
</portType>
+ <portType name="HelloWorldSoapActionPortType">
+ <operation name="sayHi">
+ <input message="tns:sayHi" name="sayHi"/>
+ <output message="tns:sayHiResponse" name="sayHiResponse"/>
+ </operation>
+ <operation name="sayHi2">
+ <input message="tns:sayHi" name="sayHi"/>
+ <output message="tns:sayHiResponse" name="sayHiResponse"/>
+ </operation>
+ </portType>
<portType name="HelloWorldOneWayPort">
<operation name="greetMeOneWay">
<input message="tns:greetMeOneWay" name="greetMeOneWay"/>
@@ -157,6 +167,30 @@
</fault>
</operation>
</binding>
+ <binding name="HelloWorldPortSoapActionBinding" type="tns:HelloWorldSoapActionPortType">
+ <soap:binding style="rpc" transport="http://www.w3.org/2010/soapjms/"/>
+ <jms:jndiURL>tcp://localhost:61500</jms:jndiURL>
+ <jms:jndiInitialContextFactory>org.apache.activemq.jndi.ActiveMQInitialContextFactory</jms:jndiInitialContextFactory>
+
+ <operation name="sayHi">
+ <soap:operation soapAction="SAY_HI_1" style="rpc"/>
+ <input name="sayHi">
+ <soap:body namespace="http://cxf.apache.org/hello_world_jms" use="literal"/>
+ </input>
+ <output name="sayHiResponse">
+ <soap:body namespace="http://cxf.apache.org/hello_world_jms" use="literal"/>
+ </output>
+ </operation>
+ <operation name="sayHi2">
+ <soap:operation soapAction="SAY_HI_2" style="rpc"/>
+ <input name="sayHi">
+ <soap:body namespace="http://cxf.apache.org/hello_world_jms" use="literal"/>
+ </input>
+ <output name="sayHiResponse">
+ <soap:body namespace="http://cxf.apache.org/hello_world_jms" use="literal"/>
+ </output>
+ </operation>
+ </binding>
<binding name="HelloWorldQueueBinMsgBinding" type="tns:HelloWorldPortType">
<soap:binding style="rpc" transport="http://www.w3.org/2010/soapjms/"/>
<jms:jndiURL>tcp://localhost:61500</jms:jndiURL>
@@ -309,6 +343,11 @@
<soap:address location="jms:jndi:dynamicQueues/test.jmstransport.text?username=testUser&password=testPassword&useConduitIdSelector=false" />
</port>
</service>
+ <service name="HelloWorldServiceSoapAction">
+ <port binding="tns:HelloWorldPortSoapActionBinding" name="HelloWorldPort">
+ <soap:address location="jms:jndi:dynamicQueues/test.jmstransport.text?username=testUser&password=testPassword&useConduitIdSelector=false" />
+ </port>
+ </service>
<service name="HelloWorldServiceAppCorrelationID">
<port binding="tns:HelloWorldPortBinding" name="HelloWorldPortAppCorrelationIDEng">
<soap:address location="jms:queue:test.jmstransport.text.app.correlation.id?replyToQueueName=test.jmstransport.text.app.correlation.id.reply" />