axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Glen Daniels" <gdani...@macromedia.com>
Subject Transports
Date Tue, 22 May 2001 05:49:52 GMT
I've just been playing a little with various models for "transports" in Axis,
esp. on the server side.  I've now got the servlet set up so if you do this in
your web.xml (or via other deployment means):

<servlet>
  <servlet-name>AxisServlet</servlet-name>
  <display-name>Apache-Axis Servlet</display-name>
  <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
  <description />
  <init-param>
   <param-name>transport.input</param-name>
   <param-value>transport_1</param-value>
  </init-param>
</servlet>
<servlet>
  <servlet-name>SecondServlet</servlet-name>
  <display-name>Apache-Axis Servlet</display-name>
  <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
  <description />
  <init-param>
   <param-name>transport.input</param-name>
   <param-value>transport_2</param-value>
  </init-param>
</servlet>

...you'll get two servlets registered, using the same class, each of which will
use a different HTTP transport input chain.

I think the next thing I'd like to see in this realm is a concept of named
"transport listeners".  Each servlet we deploy would get a name, as would each
POP listener, socket listener, etc.  Then that name gets used to look up
appropriate transport chains, instead of doing it the way we do now where the
servlet knows the names of its transport chains.

To touch on a related topic, I'm imagining that each service we deploy will
have a set of valid transports over which it may be accessed.  I.e. the
getQuote service is available to any transport we deploy, but the updateAccount
service is only accessible via a particular servlet which is hardwired to use
SSL.

Having the names of the Listeners and chains be separate seems nicely modular
to me, so you could have different Listeners with different sets of active
services behind them, but sharing the same transport chains.

As an example, you might have:

Listener "HTTP1" - servlet at http://foo.com/soap
  - maps to transport in-chain "HTTP.input", no out-chain
  - All "business" services use this transport

Listener "HTTPAdmin" - servlet at http://foo.com/soapadmin
  - same class as above (no extra code, just deployment)
  - maps to transport in-chain "SecureHTTP.input", which includes
    authentication checkers
  - AdminService has this as the only valid transport

Listener "AxisServlet" - servlet in the usual place
  - maps to "HTTP.input" input chain
  - only allows default Axis "test" services

This stuff was spurred by a long talk with Rob Jellinghaus in SF over the
weekend - he'll be posting some notes from that chat later on.

--Glen



Mime
View raw message