[
https://jira.jboss.org/browse/JBESB-3418?page=com.atlassian.jira.plugin.s...
]
David Ward updated JBESB-3418:
------------------------------
Description:
Before doing JBESB-3410 and JBESB-3400, I believe we need to re-visit why we changed the
internal:// URI format for the SOAPProxy wsdl configuration property.
Originally, a wsdl property would look like this:
<property name="wsdl"
value="internal://jboss.ws:context=Quickstart_webservice_proxy_basic_ws,endpoint=HelloWorldWS"/>
The value after the "internal://" sheme is the full mbean name of that web
service. This was done because "HelloWorldWS" is not specific enough.
Now, it looks like this:
<property name="wsdl" value="internal://HelloWorldWS"/>
The value after the "internal://" schem is the shorthand name of that web
service.
The problem is that two different applications could be deployed that each call their web
service "HelloWorldWS". The full mbean name was chosen because it is fully
unique in the system - per deployment as well as web service short-hand name.
In trunk (for 4.9), as part of the work for JBESB-3372, the internal:// URI syntax was
shortend to just the short-hand name of the web service. I have discovered that this
does, in fact, cause problems. What I did was dupicate the webservice_proxy_basic
quickstart to webservice_proxy_test. Inside it, I besides changing the deployment name, I
went through and changed everywhere I saw "hello" with "goodbye".
However, I LEFT THE SHORTHAND name of "HelloWorldWS" the same. On deployment,
this is what I saw:
15:36:23,222 INFO [DefaultEndpointRegistry] register:
jboss.ws:context=Quickstart_webservice_proxy_test_ws,endpoint=HelloWorldWS
15:36:23,227 INFO [TomcatDeployer] deploy, ctxPath=/Quickstart_webservice_proxy_test_ws,
warUrl=.../tmp/deploy/tmp5058294535306107812Quickstart_webservice_proxy_test_ws-exp.war/
15:36:23,439 INFO [WSDLFilePublisher] WSDL published to:
file:/home/dward/repos/jbossesb/trunk/product/build/jbossesb-server-4.9/server/default/data/wsdl/Quickstart_webservice_proxy_test_ws.war/HelloWorldWSService1656390998107952897.wsdl
15:36:23,465 INFO [JBoss4ESBDeployer] create esb service,
Quickstart_webservice_proxy_test.esb
15:36:23,499 INFO [JBoss4ESBDeployment] Deploying
'Quickstart_webservice_proxy_test.war'
15:36:23,506 INFO [TomcatDeployer] deploy, ctxPath=/Quickstart_webservice_proxy_test,
warUrl=.../tmp/deploy/tmp6427004333585839758Quickstart_webservice_proxy_test-exp.war/
15:36:23,693 INFO [SOAPProxy] mapped soapaction [""] to binding
[{http://webservice_proxy_test/goodbyeworld}HelloWorldBinding]
15:36:23,693 INFO [SOAPProxy] mapped operation
[{http://webservice_proxy_test/goodbyeworld}sayGoodbye] to binding
[{http://webservice_proxy_test/goodbyeworld}HelloWorldBinding]
15:36:23,693 INFO [SOAPProxy] mapped binding
[{http://webservice_proxy_test/goodbyeworld}HelloWorldBinding] to transport
[org.jboss.soa.esb.actions.soap.proxy.HttpSOAPProxyTransport] with endpoint address:
[
http://127.0.0.1:8080/Quickstart_webservice_proxy_test_ws/HelloWorldWS]
15:36:38,743 INFO [DefaultEndpointRegistry] register:
jboss.ws:context=Quickstart_webservice_proxy_basic_ws,endpoint=HelloWorldWS
15:36:38,748 INFO [TomcatDeployer] deploy, ctxPath=/Quickstart_webservice_proxy_basic_ws,
warUrl=.../tmp/deploy/tmp5564876594631336257Quickstart_webservice_proxy_basic_ws-exp.war/
15:36:38,945 INFO [WSDLFilePublisher] WSDL published to:
file:/home/dward/repos/jbossesb/trunk/product/build/jbossesb-server-4.9/server/default/data/wsdl/Quickstart_webservice_proxy_basic_ws.war/HelloWorldWSService4562073185226278059.wsdl
15:36:38,967 INFO [JBoss4ESBDeployer] create esb service,
Quickstart_webservice_proxy_basic.esb
15:36:39,002 INFO [JBoss4ESBDeployment] Deploying
'Quickstart_webservice_proxy_basic.war'
15:36:39,012 INFO [TomcatDeployer] deploy, ctxPath=/Quickstart_webservice_proxy_basic,
warUrl=.../tmp/deploy/tmp6238185939414067851Quickstart_webservice_proxy_basic-exp.war/
15:36:39,227 INFO [SOAPProxy] mapped soapaction [""] to binding
[{http://webservice_proxy_test/goodbyeworld}HelloWorldBinding]
15:36:39,228 INFO [SOAPProxy] mapped operation
[{http://webservice_proxy_test/goodbyeworld}sayGoodbye] to binding
[{http://webservice_proxy_test/goodbyeworld}HelloWorldBinding]
15:36:39,228 INFO [SOAPProxy] mapped binding
[{http://webservice_proxy_test/goodbyeworld}HelloWorldBinding] to transport
[org.jboss.soa.esb.actions.soap.proxy.HttpSOAPProxyTransport] with endpoint address:
[
http://127.0.0.1:8080/Quickstart_webservice_proxy_test_ws/HelloWorldWS]
If you read the log lines, you will see that the mapping for BOTH deployments is using the
"goodbye"-based contract. I believe this is because "HelloWorldWS" is
not unique enough. The deployment name has to be in the internal:// URI as well as the
shorthand webservice name. For the same reason, the proxy contracts found in
http://localhost:8080/contract/ are also both the same (so one of them is wrong).
Additionally, and this is just my opinion, changing the format of the internal:// wsdl URI
means that all our customers and users who use the original format have to know to change
it to the new format. Even if the new format worked (which it doesn't), if the reason
for this was only cosmetic, I believe that's not a good enough reason to cause pain
for all the customers and users.
was:
Before doing JBESB-3410 and JBESB-3400, I believe we need to re-visit why we changed the
internal:// URI format for the SOAPProxy wsdl configuration property.
Originally, a wsdl property would look like this:
<property name="wsdl"
value="internal://jboss.ws:context=Quickstart_webservice_proxy_basic_ws,endpoint=HelloWorldWS"/>
The value after the "internal://" sheme is the full mbean name of that web
service. This was done because "HelloWorldWS" is not specific enough. Two
different applications could be deployed that each call their web service
"HelloWorldWS". The full mbean name was chosen because it is fully unique in
the system - per deployment as well as web service short-hand name.
In trunk (for 4.9), as part of the work for JBESB-3372, the internal:// URI syntax was
shortend to just the short-hand name of the web service. I have discovered that this
does, in fact, cause problems. What I did was dupicate the webservice_proxy_basic
quickstart to webservice_proxy_test. Inside it, I besides changing the deployment name, I
went through and changed everywhere I saw "hello" with "goodbye".
However, I LEFT THE SHORTHAND name of "HelloWorldWS" the same. On deployment,
this is what I saw:
15:36:23,222 INFO [DefaultEndpointRegistry] register:
jboss.ws:context=Quickstart_webservice_proxy_test_ws,endpoint=HelloWorldWS
15:36:23,227 INFO [TomcatDeployer] deploy, ctxPath=/Quickstart_webservice_proxy_test_ws,
warUrl=.../tmp/deploy/tmp5058294535306107812Quickstart_webservice_proxy_test_ws-exp.war/
15:36:23,439 INFO [WSDLFilePublisher] WSDL published to:
file:/home/dward/repos/jbossesb/trunk/product/build/jbossesb-server-4.9/server/default/data/wsdl/Quickstart_webservice_proxy_test_ws.war/HelloWorldWSService1656390998107952897.wsdl
15:36:23,465 INFO [JBoss4ESBDeployer] create esb service,
Quickstart_webservice_proxy_test.esb
15:36:23,499 INFO [JBoss4ESBDeployment] Deploying
'Quickstart_webservice_proxy_test.war'
15:36:23,506 INFO [TomcatDeployer] deploy, ctxPath=/Quickstart_webservice_proxy_test,
warUrl=.../tmp/deploy/tmp6427004333585839758Quickstart_webservice_proxy_test-exp.war/
15:36:23,693 INFO [SOAPProxy] mapped soapaction [""] to binding
[{http://webservice_proxy_test/goodbyeworld}HelloWorldBinding]
15:36:23,693 INFO [SOAPProxy] mapped operation
[{http://webservice_proxy_test/goodbyeworld}sayGoodbye] to binding
[{http://webservice_proxy_test/goodbyeworld}HelloWorldBinding]
15:36:23,693 INFO [SOAPProxy] mapped binding
[{http://webservice_proxy_test/goodbyeworld}HelloWorldBinding] to transport
[org.jboss.soa.esb.actions.soap.proxy.HttpSOAPProxyTransport] with endpoint address:
[
http://127.0.0.1:8080/Quickstart_webservice_proxy_test_ws/HelloWorldWS]
15:36:38,743 INFO [DefaultEndpointRegistry] register:
jboss.ws:context=Quickstart_webservice_proxy_basic_ws,endpoint=HelloWorldWS
15:36:38,748 INFO [TomcatDeployer] deploy, ctxPath=/Quickstart_webservice_proxy_basic_ws,
warUrl=.../tmp/deploy/tmp5564876594631336257Quickstart_webservice_proxy_basic_ws-exp.war/
15:36:38,945 INFO [WSDLFilePublisher] WSDL published to:
file:/home/dward/repos/jbossesb/trunk/product/build/jbossesb-server-4.9/server/default/data/wsdl/Quickstart_webservice_proxy_basic_ws.war/HelloWorldWSService4562073185226278059.wsdl
15:36:38,967 INFO [JBoss4ESBDeployer] create esb service,
Quickstart_webservice_proxy_basic.esb
15:36:39,002 INFO [JBoss4ESBDeployment] Deploying
'Quickstart_webservice_proxy_basic.war'
15:36:39,012 INFO [TomcatDeployer] deploy, ctxPath=/Quickstart_webservice_proxy_basic,
warUrl=.../tmp/deploy/tmp6238185939414067851Quickstart_webservice_proxy_basic-exp.war/
15:36:39,227 INFO [SOAPProxy] mapped soapaction [""] to binding
[{http://webservice_proxy_test/goodbyeworld}HelloWorldBinding]
15:36:39,228 INFO [SOAPProxy] mapped operation
[{http://webservice_proxy_test/goodbyeworld}sayGoodbye] to binding
[{http://webservice_proxy_test/goodbyeworld}HelloWorldBinding]
15:36:39,228 INFO [SOAPProxy] mapped binding
[{http://webservice_proxy_test/goodbyeworld}HelloWorldBinding] to transport
[org.jboss.soa.esb.actions.soap.proxy.HttpSOAPProxyTransport] with endpoint address:
[
http://127.0.0.1:8080/Quickstart_webservice_proxy_test_ws/HelloWorldWS]
If you read the log lines, you will see that the mapping for BOTH deployments is using the
"goodbye"-based contract. I believe this is because "HelloWorldWS" is
not unique enough. The deployment name has to be in the internal:// URI as well as the
shorthand webservice name. For the same reason, the proxy contracts found in
http://localhost:8080/contract/ are also both the same (so one of them is wrong).
Additionally, and this is just my opinion, changing the format of the internal:// wsdl URI
means that all our customers and users who use the original format have to know to change
it to the new format. Even if the new format worked (which it doesn't), if the reason
for this was only cosmetic, I believe that's not a good enough reason to cause pain
for all the customers and users.
shorthand internal:// URI format causes problems
------------------------------------------------
Key: JBESB-3418
URL:
https://jira.jboss.org/browse/JBESB-3418
Project: JBoss ESB
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: Configuration, Web Services
Reporter: David Ward
Priority: Blocker
Fix For: 4.9
Before doing JBESB-3410 and JBESB-3400, I believe we need to re-visit why we changed the
internal:// URI format for the SOAPProxy wsdl configuration property.
Originally, a wsdl property would look like this:
<property name="wsdl"
value="internal://jboss.ws:context=Quickstart_webservice_proxy_basic_ws,endpoint=HelloWorldWS"/>
The value after the "internal://" sheme is the full mbean name of that web
service. This was done because "HelloWorldWS" is not specific enough.
Now, it looks like this:
<property name="wsdl" value="internal://HelloWorldWS"/>
The value after the "internal://" schem is the shorthand name of that web
service.
The problem is that two different applications could be deployed that each call their web
service "HelloWorldWS". The full mbean name was chosen because it is fully
unique in the system - per deployment as well as web service short-hand name.
In trunk (for 4.9), as part of the work for JBESB-3372, the internal:// URI syntax was
shortend to just the short-hand name of the web service. I have discovered that this
does, in fact, cause problems. What I did was dupicate the webservice_proxy_basic
quickstart to webservice_proxy_test. Inside it, I besides changing the deployment name, I
went through and changed everywhere I saw "hello" with "goodbye".
However, I LEFT THE SHORTHAND name of "HelloWorldWS" the same. On deployment,
this is what I saw:
15:36:23,222 INFO [DefaultEndpointRegistry] register:
jboss.ws:context=Quickstart_webservice_proxy_test_ws,endpoint=HelloWorldWS
15:36:23,227 INFO [TomcatDeployer] deploy, ctxPath=/Quickstart_webservice_proxy_test_ws,
warUrl=.../tmp/deploy/tmp5058294535306107812Quickstart_webservice_proxy_test_ws-exp.war/
15:36:23,439 INFO [WSDLFilePublisher] WSDL published to:
file:/home/dward/repos/jbossesb/trunk/product/build/jbossesb-server-4.9/server/default/data/wsdl/Quickstart_webservice_proxy_test_ws.war/HelloWorldWSService1656390998107952897.wsdl
15:36:23,465 INFO [JBoss4ESBDeployer] create esb service,
Quickstart_webservice_proxy_test.esb
15:36:23,499 INFO [JBoss4ESBDeployment] Deploying
'Quickstart_webservice_proxy_test.war'
15:36:23,506 INFO [TomcatDeployer] deploy, ctxPath=/Quickstart_webservice_proxy_test,
warUrl=.../tmp/deploy/tmp6427004333585839758Quickstart_webservice_proxy_test-exp.war/
15:36:23,693 INFO [SOAPProxy] mapped soapaction [""] to binding
[{http://webservice_proxy_test/goodbyeworld}HelloWorldBinding]
15:36:23,693 INFO [SOAPProxy] mapped operation
[{http://webservice_proxy_test/goodbyeworld}sayGoodbye] to binding
[{http://webservice_proxy_test/goodbyeworld}HelloWorldBinding]
15:36:23,693 INFO [SOAPProxy] mapped binding
[{http://webservice_proxy_test/goodbyeworld}HelloWorldBinding] to transport
[org.jboss.soa.esb.actions.soap.proxy.HttpSOAPProxyTransport] with endpoint address:
[
http://127.0.0.1:8080/Quickstart_webservice_proxy_test_ws/HelloWorldWS]
15:36:38,743 INFO [DefaultEndpointRegistry] register:
jboss.ws:context=Quickstart_webservice_proxy_basic_ws,endpoint=HelloWorldWS
15:36:38,748 INFO [TomcatDeployer] deploy,
ctxPath=/Quickstart_webservice_proxy_basic_ws,
warUrl=.../tmp/deploy/tmp5564876594631336257Quickstart_webservice_proxy_basic_ws-exp.war/
15:36:38,945 INFO [WSDLFilePublisher] WSDL published to:
file:/home/dward/repos/jbossesb/trunk/product/build/jbossesb-server-4.9/server/default/data/wsdl/Quickstart_webservice_proxy_basic_ws.war/HelloWorldWSService4562073185226278059.wsdl
15:36:38,967 INFO [JBoss4ESBDeployer] create esb service,
Quickstart_webservice_proxy_basic.esb
15:36:39,002 INFO [JBoss4ESBDeployment] Deploying
'Quickstart_webservice_proxy_basic.war'
15:36:39,012 INFO [TomcatDeployer] deploy, ctxPath=/Quickstart_webservice_proxy_basic,
warUrl=.../tmp/deploy/tmp6238185939414067851Quickstart_webservice_proxy_basic-exp.war/
15:36:39,227 INFO [SOAPProxy] mapped soapaction [""] to binding
[{http://webservice_proxy_test/goodbyeworld}HelloWorldBinding]
15:36:39,228 INFO [SOAPProxy] mapped operation
[{http://webservice_proxy_test/goodbyeworld}sayGoodbye] to binding
[{http://webservice_proxy_test/goodbyeworld}HelloWorldBinding]
15:36:39,228 INFO [SOAPProxy] mapped binding
[{http://webservice_proxy_test/goodbyeworld}HelloWorldBinding] to transport
[org.jboss.soa.esb.actions.soap.proxy.HttpSOAPProxyTransport] with endpoint address:
[
http://127.0.0.1:8080/Quickstart_webservice_proxy_test_ws/HelloWorldWS]
If you read the log lines, you will see that the mapping for BOTH deployments is using
the "goodbye"-based contract. I believe this is because
"HelloWorldWS" is not unique enough. The deployment name has to be in the
internal:// URI as well as the shorthand webservice name. For the same reason, the proxy
contracts found in
http://localhost:8080/contract/ are also both the same (so one of them
is wrong).
Additionally, and this is just my opinion, changing the format of the internal:// wsdl
URI means that all our customers and users who use the original format have to know to
change it to the new format. Even if the new format worked (which it doesn't), if the
reason for this was only cosmetic, I believe that's not a good enough reason to cause
pain for all the customers and users.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira