Thanks Dan & Glen. I am able to hit the web service & get the response.
Appreciate your help. Regards Renuka On Mon, Apr 5, 2010 at 5:10 PM, Renuka Pathak <[email protected]> wrote: > Hi Dan, > > Thanks for your reply. I used 2.2.7 now to generate client classes. when I > run the client using BindingProvider, I get following error message > > > "HTTP response '*401*: Unauthorized' invoking > https://xxxxxxxx/services/sampleQuery* with NO authorization username > configured in > conduit*{urn:oasis:names:tc:DSML:2:0:core}dsmlSoapPort.http-conduit" > > I am not sure how to configure username in conduit. I am *not *using > spring & I don't have any server certificate. I just have user name & pwd to > access that webservice. I am passing correct user name & password which I > verified again. > > Please let me know how to resolve this problem. I also did not understand > this in your reply " ...*but since we are in streaming mode, not something > we could support." *Does this mean it is not supported in CXF ? Pls help > me understand. > > Thanks!!! > > > On Mon, Apr 5, 2010 at 3:17 PM, Daniel Kulp <[email protected]> wrote: > >> On Monday 05 April 2010 2:17:40 pm Renuka Pathak wrote: >> > Thanks Glen, Your tutorials are very useful. I tied using >> BindingProvider >> > in code but now I am getting following error. >> > >> > org.apache.cxf.interceptor.Fault: Could not send Message. >> > at >> > >> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInt >> > erceptor.handleMessage(MessageSenderInterceptor.java:64) at >> > >> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorCha >> > in.java:243) at >> > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:484) at >> > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:310) at >> > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:262) at >> > org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73) at >> > org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124) >> at >> > $Proxy62.directoryRequest(Unknown Source) >> > at >> > >> main.java.gov.osc.enrollment.webserviceSFS.util.names.tc.dsml._2._0.core.D >> > >> smlSoap_DsmlSoapQuery_Client.main(DsmlSoap_DsmlSoapQuery_Client.java:116) >> > *Caused by: java.net.HttpRetryException: cannot retry due to server >> > authentication, in streaming mode* >> >> This usually means the username/password for basic auth was either not >> provided correctly or was wrong. Basically, the server sent back a >> "please >> authorize" request, but since we are in streaming mode, not something we >> could >> support. >> >> Definitely doublecheck the name/password combination and that it expects >> basic >> auth an not digest auth or similar. >> >> Dan >> >> >> > >> > On Mon, Apr 5, 2010 at 12:53 PM, Glen Mazza <[email protected]> >> wrote: >> > > I believe you're mistaking the UsernameToken profile (message-level >> > > security) >> > > with the transport-layer security required by SSL. (You shouldn't >> need >> > > to configure the USERNAME_TOKEN and PASSWORD constants that you're >> > > using.) Perhaps my ssl[1] and soap client[2] tutorials can be of help >> to >> > > you. >> > > >> > > HTH, >> > > Glen >> > > >> > > [1] http://www.jroller.com/gmazza/entry/setting_up_ssl_and_basic(Look at >> > > #7 >> > > in particular for how transport-layer usernames and passwords are >> given) >> > > >> > > [2] http://www.jroller.com/gmazza/entry/soap_client_tutorial >> > > >> > > Renuka Pathak wrote: >> > > > Hi CXF Team, >> > > > >> > > > I am new to CXF. I have generated java webservice client using CXF >> > > > wsdl2Java utility. I am accesing a https webservice. I am setting >> > > > Authentication parameters also in the java client. But when I run >> the >> > > > client >> > > > I get org.apache.cxf.interceptor.Fault: Could not send Message >> error. >> > > > Could >> > > > you please let me know what am I doing wrong? I am not sure if i am >> > > > using authentication mechanism correct or not? I am using a non >> > > > spring plain java >> > > > client. Following is the code & error I am getting. >> > > > >> > > > private static void setAuthParameter(DsmlSoap port) >> > > > >> > > > { >> > > > >> > > > org.apache.cxf.endpoint.Client client = >> > > > >> > > > org.apache.cxf.frontend.ClientProxy.getClient(port); >> > > > >> > > > >> System.out.println("org.apache.cxf.frontend.ClientProxy.getClient(port) >> > > > :" + >> > > > org.apache.cxf.frontend.ClientProxy.getClient(port)); >> > > > >> > > > org.apache.cxf.endpoint.Endpoint cxfEndpoint = >> > > > >> > > > client.getEndpoint(); >> > > > >> > > > System.out.println("client.getEndPoint: " + cxfEndpoint); >> > > > Map<String,Object> outProps= new HashMap<String,Object>(); >> > > >> > > >> outProps.put(WSHandlerConstants.ACTION,WSHandlerConstants.USERNAME_TOKEN) >> > > ; >> > > >> > > > outProps.put(WSHandlerConstants.PASSWORD_TYPE, >> > > > >> > > > WSConstants.PW_TEXT); >> > > > >> > > > outProps.put(WSHandlerConstants.USER, "endUser"); >> > > >> > > >> outProps.put(WSHandlerConstants.PW_CALLBACK_CLASS,ClientPasswordHandler.c >> > > lass.getName()); >> > > >> > > > WSS4JOutInterceptor wssOut = new >> WSS4JOutInterceptor(outProps); >> > > > >> > > > cxfEndpoint.getOutInterceptors().add(wssOut); >> > > > >> > > > cxfEndpoint.getOutInterceptors().add(new >> SAAJOutInterceptor()); >> > > > >> > > > } >> > > > >> > > > Note: ClientPasswordHandler has also been impemented & I set the >> > > > password in >> > > > it. >> > > > >> > > > Client code which is calling above method: >> > > > public static void main(String args[]) throws Exception { >> > > > >> > > > URL wsdlURL = DsmlQueryService.WSDL_LOCATION; >> > > > System.out.println("ds: " + wsdlURL); >> > > > if (args.length > 0) { >> > > > >> > > > File wsdlFile = new File(args[0]); >> > > > try { >> > > > >> > > > if (wsdlFile.exists()) { >> > > > >> > > > wsdlURL = wsdlFile.toURI().toURL(); >> > > > >> > > > } else { >> > > > >> > > > wsdlURL = new URL(args[0]); >> > > > >> > > > } >> > > > >> > > > } catch (MalformedURLException e) { >> > > > >> > > > e.printStackTrace(); >> > > > >> > > > } >> > > > >> > > > } >> > > > >> > > > DsmlQueryService ss = new DsmlQueryService(wsdlURL, >> > > >> > > SERVICE_NAME); >> > > >> > > > System.out.println("Invoking directoryRequest.22222.." + >> ss); >> > > > >> > > > DsmlSoap port = ss.getDsmlSoapQuery(); >> > > > >> > > > setAuthParameter(port); >> > > > DsmlSoap_DsmlSoapQuery_Client dsmlClient = new >> > > > >> > > > DsmlSoap_DsmlSoapQuery_Client(); >> > > > >> > > > BatchRequest _directoryRequest_batchRequest= >> > > > >> > > > dsmlClient.callSearchRequest(); >> > > > >> > > > BatchResponse _directoryRequest__return = >> > > > >> > > > port.directoryRequest(_directoryRequest_batchRequest); >> > > > >> > > > } >> > > > >> > > > Error: >> > > > Interceptor for >> > > >> > > >> {urn:oasis:names:tc:DSML:2:0:core}dsmlQueryService#{urn:oasis:names:tc:DS >> > > ML:2:0:core}directoryRequest >> > > >> > > > has thrown exception, unwinding now >> > > > org.apache.cxf.interceptor.Fault: Could not send Message. >> > > > >> > > > at >> > > >> > > >> org.apache.cxf.interceptor.MessageSenderInterceptor.handleMessage(Message >> > > SenderInterceptor.java:48) >> > > >> > > > at >> > > >> > > >> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorCh >> > > ain.java:243) >> > > >> > > > at >> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:484) >> > > > at >> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:310) >> > > > at >> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:262) >> > > > at >> > > >> > > org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73) >> > > >> > > > at >> > > > >> > > > >> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124) >> > > > >> > > > at $Proxy62.directoryRequest(Unknown Source) >> > > > at >> > > >> > > >> main.java.gov.osc.enrollment.webserviceSFS.client.DsmlSoap_DsmlSoapQuery_ >> > > Client.main(DsmlSoap_DsmlSoapQuery_Client.java:122) >> > > >> > > > Caused by: java.net.MalformedURLException: Invalid address. Endpoint >> > > > address >> > > > cannot be null. >> > > > >> > > > at >> > > > >> > > > >> org.apache.cxf.transport.http.HTTPConduit.getURL(HTTPConduit.java:833) >> > > > >> > > > at >> > > > >> > > > >> org.apache.cxf.transport.http.HTTPConduit.getURL(HTTPConduit.java:818) >> > > > >> > > > at >> > > > >> > > > >> org.apache.cxf.transport.http.HTTPConduit.setupURL(HTTPConduit.java:745 >> > > > ) >> > > > >> > > > at >> > > > >> > > > >> org.apache.cxf.transport.http.HTTPConduit.prepare(HTTPConduit.java:494) >> > > > >> > > > at >> > > >> > > >> org.apache.cxf.interceptor.MessageSenderInterceptor.handleMessage(Message >> > > SenderInterceptor.java:46) >> > > >> > > >> > > >> > > -- >> > > View this message in context: >> > > >> http://old.nabble.com/Error-in-java-webservice-client-CXF%3A-org.apache.c >> > > >> xf.interceptor.Fault%3A--Could-not-send-Message.-tp28141672p28142020.html >> > > Sent from the cxf-user mailing list archive at Nabble.com. >> >> -- >> Daniel Kulp >> [email protected] >> http://dankulp.com/blog >> > >
