cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From James Mao <james....@iona.com>
Subject Re: Adding interceptors to an SEI implementation class
Date Wed, 21 Nov 2007 08:20:09 GMT
Hi Glen,

> 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:
>   

You can,

ep.getServiceFactory().getBus()

James

> 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