Carlo Bonamico [
https://community.jboss.org/people/carlo.bonamico] created the discussion
"Is it possible to configure JAX-WS services with an external descriptor?"
To view the discussion, visit:
https://community.jboss.org/message/762155#762155
--------------------------------------------------------------
Hi,
I had to manage a situation similar to
https://community.jboss.org/thread/146575
https://community.jboss.org/thread/146575 where a JBoss instance publishes a JaxWs service
(annotated with @WebService) on plain http:// http:// on an internal network, and an
external Apache httpd server with mod_proxy or mod_jk re-publishes the service over
https:// https:// on the outside. The environment is JBoss-WS on JBoss AS 5.1.0.
In order to be able to rewrite the soap:address field in the WSDL I successfully followed
@asoldano advice:
Something else you might want to try is setting your soap:address to
something like "
https://replace-me/ https://REPLACE-ME", that should force the
https protocol to be use in the soap:address when rewriting it. I think this probably has
the side effect of overwriting the webServicePort you might want to >specify though.
Then enabled rewriting of the address in
jbossws.deployer/META-INF/jboss-beans.xml
<bean name="ServiceEndpointManager"
class="org.jboss.ws.server.ServiceEndpointManager">
<!--
The WSDL, that is a required deployment artifact for an endpoint, has a
<soap:address>
element which points to the location of the endpoint. JBoss supports rewriting of
that SOAP address.
If the content of <soap:address> is a valid URL, JBossWS will not rewrite it
unless AlwaysModifySOAPAddress is true.
If the content of <soap:address> is not a valid URL, JBossWS will rewrite it
using the attribute values given below.
-->
<property
name="webServiceHost">www.external.domain.com</property>
<property name="webServiceSecurePort">443</property>
<property name="alwaysModifySOAPAddress">true</property>
...
</bean>
In this way the resulting url exposed in the wsdl is
https://www.external.domain.com/path/ https://www.external.domain.com/path/... which is
what I needed to achieve.
However, apparently this only works for services which have an associated wsdl file
provided by the developer (@WebService(wsdlLocation = "WEB-INF/...")) in the
deployment. I would like to enable a similar behavior on services which have only the
defining implementation class.
Is it possible to associate to an @WebService class an external deployment descriptor
which only specifies soap:address and/or other specific jaxws parameters, without having
to explcitely create (and obviously maintain over time) the wsdlby hand?
In general, I think that this scenario is not so uncommin, and it would be useful to have
a parameter as suggested by @asoldano to simply enable rewriting of http:// into https://
If nothing of this helps, please create a feature request jira. We
might think about adding another configuration option (webServiceProtocol) and achieve
what you want throught that.
--------------------------------------------------------------
Reply to this message by going to Community
[
https://community.jboss.org/message/762155#762155]
Start a new discussion in JBoss Web Services at Community
[
https://community.jboss.org/choose-container!input.jspa?contentType=1&...]