Dan,
I might take you up on that offer. I'm just trying to have a jetty server that
serves up static resources as well as exports various service points. For
now, I've done the following which SEEMS to work. I'm not sure why, or how, but
it works. All I've done is made sure the jaxrs:server uses the same port as the
httpj:engine-factory eg:
<httpj:engine-factory bus="cxf" id="jetty-factory">
<httpj:engine port="8080">
<httpj:handlers>
<ref bean="staticResourceJettyHandler" />
</httpj:handlers>
</httpj:engine>
</httpj:engine-factory>
<jaxrs:server id="server" address="http://localhost.com:8080/services/"
>
<jaxrs:serviceBeans>
<ref bean="userService" />
</jaxrs:serviceBeans>
<jaxrs:providers>
<ref bean="jsonProvider" />
<ref bean="jaxbElementProvider" />
</jaxrs:providers>
<jaxrs:extensionMappings>
<entry key="json" value="application/json" />
<entry key="xml" value="application/xml" />
</jaxrs:extensionMappings>
</jaxrs:server>
-----Original Message-----
From: Daniel Kulp [mailto:[email protected]]
Sent: Thursday, July 15, 2010 4:39 PM
To: [email protected]
Cc: Obele, Azubuko (GWMG Technology)
Subject: Re: Customizing the Underlying Jetty Server with JAXRS
That's a really good question. I was going to point at:
http://cxf.apache.org/docs/jetty-configuration.html
but that really doesn't address completely what you need. You can add
handlers with it, but not sure about other static file serving and such.
>From code, you could do something like:
JettyHTTPServerEngineFactory serverEngineFactory
=getBus().getExtension(JettyHTTPServerEngineFactory.class);
if (serverEngineFactory == null) {
serverEngineFactory = new JettyHTTPServerEngineFactory();
serverEngineFactory.setBus(getBus());
}
And then call:
JettyHTTPServerEngine createJettyHTTPServerEngine(String host, int port,
String protocol)
on there to get the engine for whatever port you are on and start mucking with
it.
That all said, if you REALLY would like "top notch" ability to do this, I would
recommend digging into the cxf-transport-http-jetty code and adding some
options to the stuff described on the above docs page to add additional
functionality and submit that back to CXF. I'd be willing to help provide
pointers. :-)
Dan
On Wednesday 14 July 2010 6:14:02 pm Obele, Azubuko wrote:
> I'm using the namespace-based Spring configuration to setup JAXRS so I
> have something like:
>
> <jaxrs:server id="myservice" address="http://localhost.ms.com:8080/ai/" >
> <jaxrs:serviceBeans>
> <ref bean="a" />
> </jaxrs:serviceBeans>
> <jaxrs:providers>
> <ref bean="jaxbElementProvider" />
> <ref bean="jacksonProvider" />
> </jaxrs:providers>
> <jaxrs:extensionMappings>
> <entry key="json" value="application/json" />
> <entry key="xml" value="application/xml" />
> </jaxrs:extensionMappings>
> </jaxrs:server>
>
> It works great.
>
> The thing is, I'd like to customize the underlying Jetty server used here.
> I'd like to also serve up static resources and add a few other handlers.
> This seems like a common request but I can't google up any definitive
> answers.
>
> I see that jaxrs:server has a serviceClass and a transportId attribute
> but I'm having a lot of trouble figuring out exactly how I might use
> these to do what I want. Any ideas?
>
> Thanks,
>
> ----------------------------------------------------------------------
> ----
> Important Notice to Recipients:
>
> It is important that you do not use e-mail to request, authorize or
> effect the purchase or sale of any security or commodity, to send fund
> transfer instructions, or to effect any other transactions. Any such
> request, orders, or instructions that you send will not be accepted
> and will not be processed by Morgan Stanley Smith Barney.
>
> The sender of this e-mail is an employee of Morgan Stanley Smith
> Barney LLC. If you have received this communication in error, please
> destroy all electronic and paper copies and notify the sender
> immediately. Erroneous transmission is not intended to waive
> confidentiality or privilege. Morgan Stanley Smith Barney reserves the
> right, to the extent permitted under applicable law, to monitor
> electronic communications. By e-mailing with Morgan Stanley Smith Barney you
> consent to the foregoing.
--
Daniel Kulp
[email protected]
http://dankulp.com/blog
--------------------------------------------------------------------------
Important Notice to Recipients:
It is important that you do not use e-mail to request, authorize or effect the
purchase or sale of any security or commodity, to send fund transfer
instructions, or to effect any other transactions. Any such request, orders, or
instructions that you send will not be accepted and will not be processed by
Morgan Stanley Smith Barney.
The sender of this e-mail is an employee of Morgan Stanley Smith Barney LLC. If
you have received this communication in error, please destroy all electronic
and paper copies and notify the sender immediately. Erroneous transmission is
not intended to waive confidentiality or privilege. Morgan Stanley Smith Barney
reserves the right, to the extent permitted under applicable law, to monitor
electronic communications. By e-mailing with Morgan Stanley Smith Barney you
consent to the foregoing.