Hm, that's too bad. I really need WS-Security.

I don't mind hacking around with interceptors to make it work -- would it be 
possible to get a brief overview of how provider-style differs from "ordinary" 
services? When I debug an ordinary service, I see lots of interceptors, like 
this:

Chain [EMAIL PROTECTED] Current flow:
  pre-logical [HolderOutInterceptor, SwAOutInterceptor, 
WrapperClassOutInterceptor, SoapHeaderOutFilterInterceptor]
  post-logical [SoapPreProtocolOutInterceptor]
  prepare-send [MessageSenderInterceptor]
  pre-stream [LoggingOutInterceptor, AttachmentOutInterceptor, 
StaxOutInterceptor]
  pre-protocol [SOAPHandlerInterceptor, WSS4JOutInterceptor]
  write [SoapOutInterceptor]
  pre-marshal [LogicalHandlerOutInterceptor]
  marshal [WrappedOutInterceptor, BareOutInterceptor]
  pre-stream-ending [StaxOutEndingInterceptor]
  prepare-send-ending [MessageSenderEndingInterceptor]

And when I debug my provider-based service, I see not nearly as many, like this:

Chain [EMAIL PROTECTED] Current flow:
  prepare-send [MessageSenderInterceptor]
  pre-stream [LoggingOutInterceptor]
  pre-protocol [WSS4JOutInterceptor]
  write [DispatchOutDatabindingInterceptor]
  pre-marshal [DispatchLogicalHandlerInterceptor]
  user-protocol [DispatchSOAPHandlerInterceptor]
  prepare-send-ending [MessageSenderEndingInterceptor]

I can see where things like StaxOut are setting up things that the WSS4JOut 
uses (actually the SAAJOut called from WSS4JOut), such as:

        message.setContent(XMLStreamWriter.class, writer);

The lack of that StaxOut is the cause of the particular NPE I'm seeing.

Anyway, I'm just wondering -- at a high level, how does provider-style service 
work, interceptor-flow-wise? Do you think it's practical for me to try to chase 
these kind of bugs one-at-a-time and make it work?

Thanks,

Lee


> -----Original Message-----
> From: Daniel Kulp [mailto:[EMAIL PROTECTED]
> Sent: Wednesday, September 24, 2008 11:46 AM
> To: [email protected]
> Cc: Lee Breisacher
> Subject: Re: NPE when using WSS4JOutInterceptor
>
>
> Honestly, I'm not sure any of the "advanced" things work with the
> provider/dispatch style services right now.   I KNOW
> ws-addressing and WS-RM
> don't.  The interceptors for the provider based stuff
> definitely need some
> work to get them to properly slip into the other pathways.   :-(
>
> Dan
>
>
>
> On Wednesday 24 September 2008 1:36:59 pm Lee Breisacher wrote:
> > I have a simple WebServiceProvider-based service. I'm using
> CXF 2.1.2.
> > When I add a WSS4JOutInterceptor, I get this NullPointerException:
> >
> > java.lang.NullPointerException
> >         at
> >
> >org.apache.cxf.staxutils.StaxUtils.writeStartElement(StaxUtil
s.java:369
> >) at
> > org.apache.cxf.staxutils.StaxUtils.copy(StaxUtils.java:326) at
> > org.apache.cxf.staxutils.StaxUtils.copy(StaxUtils.java:314) at
> >org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor$SAAJOutEn
dingInterc
> >epto
> >r.handleMessage(SAAJOutInterceptor.java:161) at
> >org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor$SAAJOutEn
dingInterc
> >epto
> >r.handleMessage(SAAJOutInterceptor.java:127) at
> >org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseI
nterceptor
> >Chai
> >n.java:220) at
> >
> >org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMes
> sage(Outgo
> >ingC
> >hainInterceptor.java:74) at
> >
> >org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseI
nterceptor
> >Chai
> >n.java:220) at
> >
> >org.apache.cxf.transport.ChainInitiationObserver.onMessage(Ch
ainInitiat
> >ionO
> >bserver.java:78) at
> >
> >org.apache.cxf.transport.servlet.ServletDestination.invoke(Se
rvletDesti
> >nati
> >on.java:92) at
> >
> >org.apache.cxf.transport.servlet.ServletController.invokeDest
ination(Se
> >rvle
> >tController.java:283) at
> >
> >org.apache.cxf.transport.servlet.ServletController.invoke(Ser
vletContro
> >ller
> >.java:166) at
> >
> >org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(Ab
stractCXFS
> >ervl
> >et.java:174) at
> >
> >org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(Ab
stractCXFS
> >ervl
> >et.java:152) at
> >javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
> > at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at
> >
> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.j
> ava:487)
> >at
> >
> >org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandle
r.java:362
> >) at
> >
> >org.mortbay.jetty.security.SecurityHandler.handle(SecurityHan
dler.java:
> >216)  at
> >org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandle
r.java:181
> >)  at
> >org.mortbay.jetty.handler.ContextHandler.handle(ContextHandle
> r.java:729
> >)  at
> >org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.j
> ava:405)
> >at
> >
> >org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrappe
> r.java:152
> >) at
> > org.mortbay.jetty.Server.handle(Server.java:324)
> >         at
> >
> >org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection
> .java:505)
> >at
> >org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpC
onnection.
> >java
> >:843) at
> org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647) at
> > org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) at
> > org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380) at
> >
> >org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEnd
Point.java
> >:395
> >) at
> >
> org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThr
eadPool.java:
> >450) Sep 24, 2008 10:31:55 AM
> > org.apache.cxf.interceptor.LoggingOutInterceptor$LoggingCallback
> >onClose
> >
> > I'm not actually doing anything with WSS yet - just inserted the
> > interceptor in preparation for doing some real WSS stuff.
> >
> > I found CXF-1538 (http://issues.apache.org/jira/browse/CXF-1538),
> > which looks sortof like the same problem, but it appears to
> have been
> > fixed already.
> >
> > Am I doing something wrong or is this a bug?
> >
> > Thanks,
> >
> > Lee
>
>
>
> --
> Daniel Kulp
> [EMAIL PROTECTED]
> http://www.dankulp.com/blog
>

Reply via email to