[
https://issues.apache.org/jira/browse/CXF-3384?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13022132#comment-13022132
]
Christian Schneider commented on CXF-3384:
------------------------------------------
Currently the code just looks at the trailing http ... which is perhaps not
perfect as it would use jetty if you write: address=httpEndpoint.
The OSGi case is not considered at all. If you write your address like
"/MyEndpoint" then the servlet transport is used. The servlet transport works
exactly the same in and outside OSGi. For OSGi you just have to add the import
cxf-extension-osgi.xml to your spring context. So it wires the endpoints to the
servlet that cxf is starting.
So I think we simply need a more refined strategy to choose between jetty and
servlet. The good thing with only determining the transport impl by the address
is that the address can easily be changed using a property. So for example you
can easily use jetty in tests while you use servlet in production
> Create one http transport that is always present and delegates to the actual
> http transport
> -------------------------------------------------------------------------------------------
>
> Key: CXF-3384
> URL: https://issues.apache.org/jira/browse/CXF-3384
> Project: CXF
> Issue Type: Improvement
> Reporter: Christian Schneider
> Assignee: Christian Schneider
> Fix For: 2.4
>
>
> Problem:
> Currently we have three server side http transports: Servlet, Jetty and Osgi.
> They each register for the same transport URIs. So only one of them may be
> present at a time. So it is necessary for usersto import a special spring
> context like cxf-servlet.xml for each transport.
> Additionally it is difficult to for example test with jetty and run with
> servlet in production using the same code. It is also not possible to publish
> some services using a servlet and others using a sperate port using jetty.
> Solution:
> So to make things easier and more flexible we should register a delegating
> http transport that analyzes the endpoint url and delegates to the correct
> transport factory. So if the url contains a server name then jetty should be
> used. If not then the servlet transport should be used. Optionally an OSGi
> environment should also be detected and then the OSGi servlet transport
> should be used instead of the normal servlet transport
>
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira