cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Glen Mazza <glen.ma...@verizon.net>
Subject Re: Adding interceptors to an SEI implementation class
Date Wed, 21 Nov 2007 07:51:14 GMT
Thanks, James, I see how this was done in the class you gave[2], and
just updated our docs with a link to that sample.

Next question (for anyone to answer):  Not that someone would normally
program this way, but I would like to know if it can be done.  Using our
"logging messages"[1] example again on how one can programmatically add
interceptors to an endpoint:

import org.apache.cxf.jaxws.EndpointImpl;

Object implementor = new GreeterImpl();
EndpointImpl ep = (EndpointImpl) Endpoint.publish("http://localhost/service", implementor);

ep.getServer().getEndpoint().getInInterceptors().add(new
LoggingInInterceptor());

Question: Given an EndpointImpl, can you access the *bus*, and add
interceptors to it (for use with all other subsequent endpoints), or do
anything else with the bus?  Something like:

ep.getServer().getBus().getInInterceptors().add(new
LoggingInInterceptor());

The answer seems to be "no", because this EndpointImpl[3] (unlike
org.apache.cxf.endpoint.EndpointImpl's[4]) (intentionally) does not have
a getBus() method--probably(?) because it is not really a safe design to
allow an endpoint to alter its parent bus in this manner.

Thanks,
Glen

[2] http://tinyurl.com/3docsl
[3]
http://incubator.apache.org/cxf/javadoc/latest/org/apache/cxf/jaxws/EndpointImpl.html
[4]
http://incubator.apache.org/cxf/javadoc/latest/org/apache/cxf/endpoint/EndpointImpl.html


Am Donnerstag, den 15.11.2007, 15:02 +0800 schrieb James Mao:
> Yes, You can do that through the configuration,
> Besides, You can also get the default bus from the BusFactory, and add 
> the interceptors into the bus.
> see
> 
> systests/src/test/java/org/apache/cxf/systest/ws/addr_feature/WSAClientServerTest.java
> 
> 
> James
> 
> 
> > Team,
> >
> > The code for adding interceptors to a web service is shown on this
> > page[1] as follows:
> >
> > ---------------------------------------------------
> >
> > import javax.xml.ws.Endpoint;
> > import org.apache.cxf.interceptor.LoggingInInterceptor;
> > import org.apache.cxf.interceptor.LoggingOutInterceptor;
> > import org.apache.cxf.jaxws.EndpointImpl;
> >
> > EndpointImpl ep = (EndpointImpl)
> > Endpoint.publish("http://localhost/service", service);
> >
> > ep.getServer().getEndpoint().getInInterceptors().add(new
> > LoggingInInterceptor());
> > ep.getServer().getEndpoint().getOutInterceptors().add(new
> > LoggingOutInterceptor());
> >
> > ----------------------------------------------------
> >
> > Question: If I am not creating a web service is this manner, but am
> > instead just implementing an SEI created from wsdl2java (to be wrapped
> > up in a servlet WAR file), then I *cannot* add interceptors
> > programmically as above--in this case, I would have to use configuration
> > files, correct?
> >
> > Just want to clarify this point for the documentation.
> >
> > Thanks,
> > Glen
> >
> > [1] http://cwiki.apache.org/confluence/display/CXF20DOC/Debugging
> >
> >
> >   


Mime
View raw message