You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Gerson Galang <ge...@gmail.com> on 2008/08/20 07:40:57 UTC

adding soap headers to request/response

Hi,

I'm trying to add a soap header to the soap message I'm sending to the
server to include authentication information. I found the link below which
suggested that I use BindingProvider's request context to include the header
I created.

http://cxf.apache.org/faq.html#FAQ-HowcanIaddsoapheaderstotherequest%252Fresponse%253F

And then I found this thread which talks about how I can get the
BindingProvider using the Bean Factory I am using (ClientProxyFactoryBean)

http://www.nabble.com/BindingProvider-from-JaxWsProxyFactoryBean-td18725385.html

I wanted to check my implementation but the client throws the exception
below. Any ideas?

Exception occurred during event dispatching:
java.lang.NoSuchMethodError:
org.apache.cxf.bus.spring.ControlledValidationXmlBeanDefinitionReader.setDocumentLoader(Lorg/springframework/beans/factory/xml/DocumentLoader;)V
    at
org.apache.cxf.bus.spring.ControlledValidationXmlBeanDefinitionReader.<init>(ControlledValidationXmlBeanDefinitionReader.java:84)
    at
org.apache.cxf.bus.spring.BusApplicationContext.loadBeanDefinitions(BusApplicationContext.java:218)
    at
org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:89)
    at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:269)
    at
org.apache.cxf.bus.spring.BusApplicationContext.<init>(BusApplicationContext.java:86)
    at
org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:93)
    at
org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:87)
    at
org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:65)
    at
org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:54)
    at org.apache.cxf.BusFactory.getDefaultBus(BusFactory.java:69)
    at org.apache.cxf.BusFactory.getThreadDefaultBus(BusFactory.java:106)
    at org.apache.cxf.BusFactory.getThreadDefaultBus(BusFactory.java:97)
    at
org.apache.cxf.endpoint.AbstractEndpointFactory.getBus(AbstractEndpointFactory.java:73)
    at
org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.initializeServiceFactory(AbstractWSDLBasedEndpointFactory.java:148)
    at
org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:78)
    at
org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean.java:51)
    at
org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFactoryBean.java:97)
    at
org.vpac.grisu.client.control.ServiceInterfaceFactory.createInterface(ServiceInterfaceFactory.java:233)
    at
org.vpac.grisu.client.control.login.LoginHelpers.login(LoginHelpers.java:57)
    at
org.vpac.grisu.client.view.swing.login.MyProxyLoginPanel.login(MyProxyLoginPanel.java:152)
    at
org.vpac.grisu.client.view.swing.login.MyProxyLoginPanel.access$0(MyProxyLoginPanel.java:142)
    at
org.vpac.grisu.client.view.swing.login.MyProxyLoginPanel$3.actionPerformed(MyProxyLoginPanel.java:189)
    at
javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
    at
javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
    at
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
    at
javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
    at
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
    at java.awt.Component.processMouseEvent(Component.java:6038)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
    at java.awt.Component.processEvent(Component.java:5803)
    at java.awt.Container.processEvent(Container.java:2058)
    at java.awt.Component.dispatchEventImpl(Component.java:4410)
    at java.awt.Container.dispatchEventImpl(Container.java:2116)
    at java.awt.Component.dispatchEvent(Component.java:4240)
    at
java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
    at java.awt.Container.dispatchEventImpl(Container.java:2102)
    at java.awt.Window.dispatchEventImpl(Window.java:2429)
    at java.awt.Component.dispatchEvent(Component.java:4240)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
    at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
    at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
    at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:177)
    at java.awt.Dialog$1.run(Dialog.java:1039)
    at java.awt.Dialog$3.run(Dialog.java:1091)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.awt.Dialog.show(Dialog.java:1089)
    at java.awt.Component.show(Component.java:1419)
    at java.awt.Component.setVisible(Component.java:1372)
    at java.awt.Window.setVisible(Window.java:801)
    at java.awt.Dialog.setVisible(Dialog.java:979)
    at
org.vpac.grisu.client.view.swing.mainPanel.Grisu$5.run(Grisu.java:476)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
    at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
    at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
    at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

I'm using CXF 2.1. Here's my client source (line 229)

https://projects.arcs.org.au/trac/grisu/browser/branches/grisu-client-cxf/src/main/java/org/vpac/grisu/client/control/ServiceInterfaceFactory.java

Thanks,
Gerson

Re: adding soap headers to request/response

Posted by Daniel Kulp <dk...@apache.org>.
On Thursday 21 August 2008 2:27:49 am Gerson Galang wrote:
> Thanks Dan,
>
> I've sorted out the issues with Spring. Maven imported two version of
> Spring and the project was p icking up the old one so I couldn't find the
> method.
>
> I am using Aegis for data binding so I don't think I should be using
> JaxWsClientFactoryBean. 

No, you still need to use the JaxWsClientFactoryBean.   The databinding used 
is a separate decision from the frontend code.   In this case, 
BindingProvider is a JAX-WS specific thing, so you need to use the 
JaxWsClientFactoryBean.

Dan




> But I still had a go at what you were suggesting. 
> Have a look at lines 131-132 of this source..
>
> https://projects.arcs.org.au/trac/grisu/browser/trunk/grisu-client-cxf/src/
>main/java/org/vpac/grisu/client/control/CXFServiceInterfaceCreator.java
>
> The creation of the Service now works fine but the suggestion you gave Arul
> on this page..
>
> http://www.nabble.com/BindingProvider-from-JaxWsProxyFactoryBean-td18725385
>.html
>
> wouldn't work.  I tried to cast the service into BindingProvider but the
> application just throws a "cannot cast" exception
>
> > serviceInterface = (ServiceInterface) serviceFactory.create();
> > BindingProvider bp = (BindingProvider) serviceInterface;
>
> INFO: Creating Service {
> http://control.grisu.vpac.org/}ServiceInterfaceService from class
> org.vpac.grisu.control.ServiceInterface
> java.lang.ClassCastException: $Proxy13 cannot be cast to
> javax.xml.ws.BindingProvider
>     at
> org.vpac.grisu.client.control.CXFServiceInterfaceCreator.create(CXFServiceI
>nterfaceCreator.java:191) at
> org.vpac.grisu.client.control.ServiceInterfaceFactory.createInterface(Servi
>ceInterfaceFactory.java:119) at
> org.vpac.grisu.client.control.login.LoginHelpers.login(LoginHelpers.java:56
>) at
> org.vpac.grisu.client.view.swing.login.MyProxyLoginPanel.login(MyProxyLogin
>Panel.java:152) at
> org.vpac.grisu.client.view.swing.login.MyProxyLoginPanel.access$0(MyProxyLo
>ginPanel.java:142) at
> org.vpac.grisu.client.view.swing.login.MyProxyLoginPanel$3.actionPerformed(
>MyProxyLoginPanel.java:189) ...
>
> Is there any other way I can get hold of the BindingProvider object? I need
> it so I could add authentication information to the soap header.
>
> Thanks,
> Gerson
>
> On Thu, Aug 21, 2008 at 12:02 AM, Daniel Kulp <dk...@apache.org> wrote:
> > First off, you MAY need to use the JaxWsClientFactoryBean instead of the
> > plain
> > ClientProxyFactoryBean.  I'm not sure where the "BindingProvider" methods
> > get
> > added.
> >
> > Your error, however, indicates a spring issue.  What version of Spring is
> > found?   Either that or some sort of classloader issue where spring is
> > coming
> > from two different classloaders.
> >
> > Dan
> >
> > On Wednesday 20 August 2008 1:40:57 am Gerson Galang wrote:
> > > Hi,
> > >
> > > I'm trying to add a soap header to the soap message I'm sending to the
> > > server to include authentication information. I found the link below
> >
> > which
> >
> > > suggested that I use BindingProvider's request context to include the
> > > header I created.
> >
> > http://cxf.apache.org/faq.html#FAQ-HowcanIaddsoapheaderstotherequest%252F
> >re
> >
> > >sponse%253F
> > >
> > > And then I found this thread which talks about how I can get the
> > > BindingProvider using the Bean Factory I am using
> >
> > (ClientProxyFactoryBean)
> >
> >
> > http://www.nabble.com/BindingProvider-from-JaxWsProxyFactoryBean-td187253
> >85
> >
> > >.html
> > >
> > > I wanted to check my implementation but the client throws the exception
> > > below. Any ideas?
> > >
> > > Exception occurred during event dispatching:
> > > java.lang.NoSuchMethodError:
> >
> > org.apache.cxf.bus.spring.ControlledValidationXmlBeanDefinitionReader.set
> >Do
> >
> > >cumentLoader(Lorg/springframework/beans/factory/xml/DocumentLoader;)V at
> >
> > org.apache.cxf.bus.spring.ControlledValidationXmlBeanDefinitionReader.<in
> >it
> >
> > >>(ControlledValidationXmlBeanDefinitionReader.java:84) at
> >
> > org.apache.cxf.bus.spring.BusApplicationContext.loadBeanDefinitions(BusAp
> >pl
> >
> > >icationContext.java:218) at
> >
> > org.springframework.context.support.AbstractRefreshableApplicationContext
> >.r
> >
> > >efreshBeanFactory(AbstractRefreshableApplicationContext.java:89) at
> >
> > org.springframework.context.support.AbstractApplicationContext.refresh(Ab
> >st
> >
> > >ractApplicationContext.java:269) at
> >
> > org.apache.cxf.bus.spring.BusApplicationContext.<init>(BusApplicationCont
> >ex
> >
> > >t.java:86) at
> >
> > 
org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:
> > >93) at
> >
> > 
org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:
> > >87) at
> >
> > 
org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:
> > >65) at
> >
> > 
org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:
> > >54) at org.apache.cxf.BusFactory.getDefaultBus(BusFactory.java:69) at
> > > org.apache.cxf.BusFactory.getThreadDefaultBus(BusFactory.java:106) at
> > > org.apache.cxf.BusFactory.getThreadDefaultBus(BusFactory.java:97) at
> >
> > org.apache.cxf.endpoint.AbstractEndpointFactory.getBus(AbstractEndpointFa
> >ct
> >
> > >ory.java:73) at
> >
> > org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.initializeServic
> >eF
> >
> > >actory(AbstractWSDLBasedEndpointFactory.java:148) at
> >
> > org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(A
> >bs
> >
> > >tractWSDLBasedEndpointFactory.java:78) at
> >
> > org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean.java:5
> >1)
> >
> > >     at
> >
> > org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFactoryB
> >ea
> >
> > >n.java:97) at
> >
> > org.vpac.grisu.client.control.ServiceInterfaceFactory.createInterface(Ser
> >vi
> >
> > >ceInterfaceFactory.java:233) at
> >
> > org.vpac.grisu.client.control.login.LoginHelpers.login(LoginHelpers.java:
> >57
> >
> > >) at
> >
> > org.vpac.grisu.client.view.swing.login.MyProxyLoginPanel.login(MyProxyLog
> >in
> >
> > >Panel.java:152) at
> >
> > org.vpac.grisu.client.view.swing.login.MyProxyLoginPanel.access$0(MyProxy
> >Lo
> >
> > >ginPanel.java:142) at
> >
> > org.vpac.grisu.client.view.swing.login.MyProxyLoginPanel$3.actionPerforme
> >d(
> >
> > >MyProxyLoginPanel.java:189) at
> > > javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995
> > >) at
> >
> > javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:23
> >18
> >
> > >) at
> >
> > 
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:
> > >387) at
> > > javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
> > >     at
> >
> > javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListe
> >ne
> >
> > >r.java:236) at java.awt.Component.processMouseEvent(Component.java:6038)
> > >     at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
> > >     at java.awt.Component.processEvent(Component.java:5803)
> > >     at java.awt.Container.processEvent(Container.java:2058)
> > >     at java.awt.Component.dispatchEventImpl(Component.java:4410)
> > >     at java.awt.Container.dispatchEventImpl(Container.java:2116)
> > >     at java.awt.Component.dispatchEvent(Component.java:4240)
> > >     at
> > > java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
> > >     at
> > > java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
> > > at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916) at
> > > java.awt.Container.dispatchEventImpl(Container.java:2102)
> > >     at java.awt.Window.dispatchEventImpl(Window.java:2429)
> > >     at java.awt.Component.dispatchEvent(Component.java:4240)
> > >     at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
> > >     at
> >
> > java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.j
> >av
> >
> > >a:273) at
> >
> > java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java
> >:1
> >
> > >83) at
> >
> > java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java
> >:1
> >
> > >77) at java.awt.Dialog$1.run(Dialog.java:1039)
> > >     at java.awt.Dialog$3.run(Dialog.java:1091)
> > >     at java.security.AccessController.doPrivileged(Native Method)
> > >     at java.awt.Dialog.show(Dialog.java:1089)
> > >     at java.awt.Component.show(Component.java:1419)
> > >     at java.awt.Component.setVisible(Component.java:1372)
> > >     at java.awt.Window.setVisible(Window.java:801)
> > >     at java.awt.Dialog.setVisible(Dialog.java:979)
> > >     at
> > > org.vpac.grisu.client.view.swing.mainPanel.Grisu$5.run(Grisu.java:476)
> > >     at
> > > java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) at
> > > java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
> > >     at
> >
> > java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.j
> >av
> >
> > >a:273) at
> >
> > java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java
> >:1
> >
> > >83) at
> >
> > java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.j
> >av
> >
> > >a:173) at
> > > java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
> > > at
> > > java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
> > > at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
> > >
> > > I'm using CXF 2.1. Here's my client source (line 229)
> >
> > https://projects.arcs.org.au/trac/grisu/browser/branches/grisu-client-cxf
> >/s
> >
> > >rc/main/java/org/vpac/grisu/client/control/ServiceInterfaceFactory.java
> > >
> > > Thanks,
> > > Gerson
> >
> > --
> > Daniel Kulp
> > dkulp@apache.org
> > http://www.dankulp.com/blog



-- 
Daniel Kulp
dkulp@apache.org
http://www.dankulp.com/blog

Re: adding soap headers to request/response

Posted by Gerson Galang <ge...@gmail.com>.
Thanks Dan,

I've sorted out the issues with Spring. Maven imported two version of Spring
and the project was p icking up the old one so I couldn't find the method.

I am using Aegis for data binding so I don't think I should be using
JaxWsClientFactoryBean. But I still had a go at what you were suggesting.
Have a look at lines 131-132 of this source..

https://projects.arcs.org.au/trac/grisu/browser/trunk/grisu-client-cxf/src/main/java/org/vpac/grisu/client/control/CXFServiceInterfaceCreator.java

The creation of the Service now works fine but the suggestion you gave Arul
on this page..

http://www.nabble.com/BindingProvider-from-JaxWsProxyFactoryBean-td18725385.html

wouldn't work.  I tried to cast the service into BindingProvider but the
application just throws a "cannot cast" exception

> serviceInterface = (ServiceInterface) serviceFactory.create();
> BindingProvider bp = (BindingProvider) serviceInterface;

INFO: Creating Service {
http://control.grisu.vpac.org/}ServiceInterfaceService from class
org.vpac.grisu.control.ServiceInterface
java.lang.ClassCastException: $Proxy13 cannot be cast to
javax.xml.ws.BindingProvider
    at
org.vpac.grisu.client.control.CXFServiceInterfaceCreator.create(CXFServiceInterfaceCreator.java:191)
    at
org.vpac.grisu.client.control.ServiceInterfaceFactory.createInterface(ServiceInterfaceFactory.java:119)
    at
org.vpac.grisu.client.control.login.LoginHelpers.login(LoginHelpers.java:56)
    at
org.vpac.grisu.client.view.swing.login.MyProxyLoginPanel.login(MyProxyLoginPanel.java:152)
    at
org.vpac.grisu.client.view.swing.login.MyProxyLoginPanel.access$0(MyProxyLoginPanel.java:142)
    at
org.vpac.grisu.client.view.swing.login.MyProxyLoginPanel$3.actionPerformed(MyProxyLoginPanel.java:189)
...

Is there any other way I can get hold of the BindingProvider object? I need
it so I could add authentication information to the soap header.

Thanks,
Gerson

On Thu, Aug 21, 2008 at 12:02 AM, Daniel Kulp <dk...@apache.org> wrote:

>
> First off, you MAY need to use the JaxWsClientFactoryBean instead of the
> plain
> ClientProxyFactoryBean.  I'm not sure where the "BindingProvider" methods
> get
> added.
>
> Your error, however, indicates a spring issue.  What version of Spring is
> found?   Either that or some sort of classloader issue where spring is
> coming
> from two different classloaders.
>
> Dan
>
>
> On Wednesday 20 August 2008 1:40:57 am Gerson Galang wrote:
> > Hi,
> >
> > I'm trying to add a soap header to the soap message I'm sending to the
> > server to include authentication information. I found the link below
> which
> > suggested that I use BindingProvider's request context to include the
> > header I created.
> >
> >
> http://cxf.apache.org/faq.html#FAQ-HowcanIaddsoapheaderstotherequest%252Fre
> >sponse%253F
> >
> > And then I found this thread which talks about how I can get the
> > BindingProvider using the Bean Factory I am using
> (ClientProxyFactoryBean)
> >
> >
> http://www.nabble.com/BindingProvider-from-JaxWsProxyFactoryBean-td18725385
> >.html
> >
> > I wanted to check my implementation but the client throws the exception
> > below. Any ideas?
> >
> > Exception occurred during event dispatching:
> > java.lang.NoSuchMethodError:
> >
> org.apache.cxf.bus.spring.ControlledValidationXmlBeanDefinitionReader.setDo
> >cumentLoader(Lorg/springframework/beans/factory/xml/DocumentLoader;)V at
> >
> org.apache.cxf.bus.spring.ControlledValidationXmlBeanDefinitionReader.<init
> >>(ControlledValidationXmlBeanDefinitionReader.java:84) at
> >
> org.apache.cxf.bus.spring.BusApplicationContext.loadBeanDefinitions(BusAppl
> >icationContext.java:218) at
> >
> org.springframework.context.support.AbstractRefreshableApplicationContext.r
> >efreshBeanFactory(AbstractRefreshableApplicationContext.java:89) at
> >
> org.springframework.context.support.AbstractApplicationContext.refresh(Abst
> >ractApplicationContext.java:269) at
> >
> org.apache.cxf.bus.spring.BusApplicationContext.<init>(BusApplicationContex
> >t.java:86) at
> >
> org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:
> >93) at
> >
> org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:
> >87) at
> >
> org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:
> >65) at
> >
> org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:
> >54) at org.apache.cxf.BusFactory.getDefaultBus(BusFactory.java:69) at
> > org.apache.cxf.BusFactory.getThreadDefaultBus(BusFactory.java:106) at
> > org.apache.cxf.BusFactory.getThreadDefaultBus(BusFactory.java:97) at
> >
> org.apache.cxf.endpoint.AbstractEndpointFactory.getBus(AbstractEndpointFact
> >ory.java:73) at
> >
> org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.initializeServiceF
> >actory(AbstractWSDLBasedEndpointFactory.java:148) at
> >
> org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(Abs
> >tractWSDLBasedEndpointFactory.java:78) at
> >
> org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean.java:51)
> >     at
> >
> org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFactoryBea
> >n.java:97) at
> >
> org.vpac.grisu.client.control.ServiceInterfaceFactory.createInterface(Servi
> >ceInterfaceFactory.java:233) at
> >
> org.vpac.grisu.client.control.login.LoginHelpers.login(LoginHelpers.java:57
> >) at
> >
> org.vpac.grisu.client.view.swing.login.MyProxyLoginPanel.login(MyProxyLogin
> >Panel.java:152) at
> >
> org.vpac.grisu.client.view.swing.login.MyProxyLoginPanel.access$0(MyProxyLo
> >ginPanel.java:142) at
> >
> org.vpac.grisu.client.view.swing.login.MyProxyLoginPanel$3.actionPerformed(
> >MyProxyLoginPanel.java:189) at
> > javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
> >     at
> >
> javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318
> >) at
> >
> javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:
> >387) at
> > javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
> >     at
> >
> javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListene
> >r.java:236) at java.awt.Component.processMouseEvent(Component.java:6038)
> >     at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
> >     at java.awt.Component.processEvent(Component.java:5803)
> >     at java.awt.Container.processEvent(Container.java:2058)
> >     at java.awt.Component.dispatchEventImpl(Component.java:4410)
> >     at java.awt.Container.dispatchEventImpl(Container.java:2116)
> >     at java.awt.Component.dispatchEvent(Component.java:4240)
> >     at
> > java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
> >     at
> > java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986) at
> > java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916) at
> > java.awt.Container.dispatchEventImpl(Container.java:2102)
> >     at java.awt.Window.dispatchEventImpl(Window.java:2429)
> >     at java.awt.Component.dispatchEvent(Component.java:4240)
> >     at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
> >     at
> >
> java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.jav
> >a:273) at
> >
> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:1
> >83) at
> >
> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:1
> >77) at java.awt.Dialog$1.run(Dialog.java:1039)
> >     at java.awt.Dialog$3.run(Dialog.java:1091)
> >     at java.security.AccessController.doPrivileged(Native Method)
> >     at java.awt.Dialog.show(Dialog.java:1089)
> >     at java.awt.Component.show(Component.java:1419)
> >     at java.awt.Component.setVisible(Component.java:1372)
> >     at java.awt.Window.setVisible(Window.java:801)
> >     at java.awt.Dialog.setVisible(Dialog.java:979)
> >     at
> > org.vpac.grisu.client.view.swing.mainPanel.Grisu$5.run(Grisu.java:476)
> >     at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
> >     at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
> >     at
> >
> java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.jav
> >a:273) at
> >
> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:1
> >83) at
> >
> java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.jav
> >a:173) at
> > java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168) at
> > java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160) at
> > java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
> >
> > I'm using CXF 2.1. Here's my client source (line 229)
> >
> >
> https://projects.arcs.org.au/trac/grisu/browser/branches/grisu-client-cxf/s
> >rc/main/java/org/vpac/grisu/client/control/ServiceInterfaceFactory.java
> >
> > Thanks,
> > Gerson
>
>
>
> --
> Daniel Kulp
> dkulp@apache.org
> http://www.dankulp.com/blog
>

Re: adding soap headers to request/response

Posted by Daniel Kulp <dk...@apache.org>.
First off, you MAY need to use the JaxWsClientFactoryBean instead of the plain 
ClientProxyFactoryBean.  I'm not sure where the "BindingProvider" methods get 
added.

Your error, however, indicates a spring issue.  What version of Spring is 
found?   Either that or some sort of classloader issue where spring is coming 
from two different classloaders.

Dan


On Wednesday 20 August 2008 1:40:57 am Gerson Galang wrote:
> Hi,
>
> I'm trying to add a soap header to the soap message I'm sending to the
> server to include authentication information. I found the link below which
> suggested that I use BindingProvider's request context to include the
> header I created.
>
> http://cxf.apache.org/faq.html#FAQ-HowcanIaddsoapheaderstotherequest%252Fre
>sponse%253F
>
> And then I found this thread which talks about how I can get the
> BindingProvider using the Bean Factory I am using (ClientProxyFactoryBean)
>
> http://www.nabble.com/BindingProvider-from-JaxWsProxyFactoryBean-td18725385
>.html
>
> I wanted to check my implementation but the client throws the exception
> below. Any ideas?
>
> Exception occurred during event dispatching:
> java.lang.NoSuchMethodError:
> org.apache.cxf.bus.spring.ControlledValidationXmlBeanDefinitionReader.setDo
>cumentLoader(Lorg/springframework/beans/factory/xml/DocumentLoader;)V at
> org.apache.cxf.bus.spring.ControlledValidationXmlBeanDefinitionReader.<init
>>(ControlledValidationXmlBeanDefinitionReader.java:84) at
> org.apache.cxf.bus.spring.BusApplicationContext.loadBeanDefinitions(BusAppl
>icationContext.java:218) at
> org.springframework.context.support.AbstractRefreshableApplicationContext.r
>efreshBeanFactory(AbstractRefreshableApplicationContext.java:89) at
> org.springframework.context.support.AbstractApplicationContext.refresh(Abst
>ractApplicationContext.java:269) at
> org.apache.cxf.bus.spring.BusApplicationContext.<init>(BusApplicationContex
>t.java:86) at
> org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:
>93) at
> org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:
>87) at
> org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:
>65) at
> org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:
>54) at org.apache.cxf.BusFactory.getDefaultBus(BusFactory.java:69) at
> org.apache.cxf.BusFactory.getThreadDefaultBus(BusFactory.java:106) at
> org.apache.cxf.BusFactory.getThreadDefaultBus(BusFactory.java:97) at
> org.apache.cxf.endpoint.AbstractEndpointFactory.getBus(AbstractEndpointFact
>ory.java:73) at
> org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.initializeServiceF
>actory(AbstractWSDLBasedEndpointFactory.java:148) at
> org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(Abs
>tractWSDLBasedEndpointFactory.java:78) at
> org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean.java:51)
>     at
> org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFactoryBea
>n.java:97) at
> org.vpac.grisu.client.control.ServiceInterfaceFactory.createInterface(Servi
>ceInterfaceFactory.java:233) at
> org.vpac.grisu.client.control.login.LoginHelpers.login(LoginHelpers.java:57
>) at
> org.vpac.grisu.client.view.swing.login.MyProxyLoginPanel.login(MyProxyLogin
>Panel.java:152) at
> org.vpac.grisu.client.view.swing.login.MyProxyLoginPanel.access$0(MyProxyLo
>ginPanel.java:142) at
> org.vpac.grisu.client.view.swing.login.MyProxyLoginPanel$3.actionPerformed(
>MyProxyLoginPanel.java:189) at
> javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
>     at
> javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318
>) at
> javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:
>387) at
> javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
>     at
> javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListene
>r.java:236) at java.awt.Component.processMouseEvent(Component.java:6038)
>     at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
>     at java.awt.Component.processEvent(Component.java:5803)
>     at java.awt.Container.processEvent(Container.java:2058)
>     at java.awt.Component.dispatchEventImpl(Component.java:4410)
>     at java.awt.Container.dispatchEventImpl(Container.java:2116)
>     at java.awt.Component.dispatchEvent(Component.java:4240)
>     at
> java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
>     at
> java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986) at
> java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916) at
> java.awt.Container.dispatchEventImpl(Container.java:2102)
>     at java.awt.Window.dispatchEventImpl(Window.java:2429)
>     at java.awt.Component.dispatchEvent(Component.java:4240)
>     at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
>     at
> java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.jav
>a:273) at
> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:1
>83) at
> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:1
>77) at java.awt.Dialog$1.run(Dialog.java:1039)
>     at java.awt.Dialog$3.run(Dialog.java:1091)
>     at java.security.AccessController.doPrivileged(Native Method)
>     at java.awt.Dialog.show(Dialog.java:1089)
>     at java.awt.Component.show(Component.java:1419)
>     at java.awt.Component.setVisible(Component.java:1372)
>     at java.awt.Window.setVisible(Window.java:801)
>     at java.awt.Dialog.setVisible(Dialog.java:979)
>     at
> org.vpac.grisu.client.view.swing.mainPanel.Grisu$5.run(Grisu.java:476)
>     at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
>     at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
>     at
> java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.jav
>a:273) at
> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:1
>83) at
> java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.jav
>a:173) at
> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168) at
> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160) at
> java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
>
> I'm using CXF 2.1. Here's my client source (line 229)
>
> https://projects.arcs.org.au/trac/grisu/browser/branches/grisu-client-cxf/s
>rc/main/java/org/vpac/grisu/client/control/ServiceInterfaceFactory.java
>
> Thanks,
> Gerson



-- 
Daniel Kulp
dkulp@apache.org
http://www.dankulp.com/blog