Hello everybody, I have a bit trouble with the Soap Headers, they are just not generated...
this is my WSDL: https://api.webtrends.com/Services/AnalyticsDataService.asmx?WSDL I generate the client code with "wsdl2java ... -exsh true ..." my client code: ###################################################################################### import javax.xml.ws.Holder; import org.apache.cxf.interceptor.LoggingInInterceptor; import org.apache.cxf.interceptor.LoggingOutInterceptor; import org.apache.cxf.jaxws.JaxWsProxyFactoryBean; import com.webtrends.ws._1.AnalyticsDataService; import com.webtrends.ws._1.WTCredentialsHeader; import com.webtrends.ws._1.WTSessionHeader; public class Main { /** * @param args */ public static void main(String[] args) { JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); factory.getInInterceptors().add(new LoggingInInterceptor()); factory.getOutInterceptors().add(new LoggingOutInterceptor()); factory.setServiceClass(AnalyticsDataService.class); factory.setAddress("https://api.webtrends.com/Services/AnalyticsDataService.asmx"); AnalyticsDataService ads = (AnalyticsDataService) factory.create(); WTCredentialsHeader credentials = new WTCredentialsHeader(); credentials.setAccountName("foo"); credentials.setUsername("bar"); credentials.setPassword("baz"); Holder<WTCredentialsHeader> credentialsHolder = new Holder<WTCredentialsHeader>(credentials); Holder<WTSessionHeader> sessionHolder = new Holder<WTSessionHeader>(new WTSessionHeader()); ads.checkAvailability(credentialsHolder, sessionHolder); } } ###################################################################################### 15.05.2009 08:01:43 org.apache.cxf.interceptor.LoggingOutInterceptor$LoggingCallback onClose INFO: Outbound Message --------------------------- Encoding: UTF-8 Headers: {SOAPAction=["http://www.webtrends.com/WS/1.0/CheckAvailability"], Accept=[*]} Messages: Payload: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><CheckAvailability xmlns="http://www.webtrends.com/WS/1.0"/></soap:Body></soap:Envelope> -------------------------------------- 15.05.2009 08:01:45 org.apache.cxf.interceptor.LoggingInInterceptor logging INFO: Inbound Message ---------------------------- Encoding: UTF-8 Headers: {content-type=[text/xml; charset=utf-8], X-AspNet-Version=[2.0.50727], Date=[Fri, 15 May 2009 06:01:45 GMT], Content-Length=[590], X-Powered-By=[ASP.NET], Server=[Microsoft-IIS/6.0], Cache-Control=[private]} Messages: Message: Payload: <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><soap:Fault><faultcode>soap:Client</faultcode><faultstring>Authentication failed.</faultstring><faultactor>http://api.webtrends.com/Services/AnalyticsDataService.asmx</faultactor><detail><Reason xmlns="http://www.webtrends.com/schemas/2006/01">Missing WTCredentialsHeader and WTSessionHeader in SOAP message.</Reason></detail></soap:Fault></soap:Body></soap:Envelope> -------------------------------------- Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Authentication failed. at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:199) at $Proxy59.checkAvailability(Unknown Source) at rbmh.webplayer.actions.Main.main(Main.java:33) Caused by: org.apache.cxf.binding.soap.SoapFault: Authentication failed. at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:70) at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:35) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220) at org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:96) at org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:69) at org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:34) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220) at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:449) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:2029) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1865) at org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:47) at org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:170) at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66) at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:593) at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:296) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:242) at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73) at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:178) ... 2 more ###################################################################################### like u can see. there is no Soap Header in the Outbound Message... and now the very funny thing, i'm using maven, so it's very simple to switch to another version of CXF the stuff is working perfectly with the older cxf versions: 2.1, 2.1.1 but if i use the newer versions: 2.1.2, 2.1.3, 2.1.4, 2.1.5, 2.2, 2.2.1, i get the error above how can that be? what is wrong thanks in dvance regards andre
