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
>

Reply via email to