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.class.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:DSML: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(MessageSenderInterceptor.java:48) > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.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(MessageSenderInterceptor.java:46) > > -- View this message in context: http://old.nabble.com/Error-in-java-webservice-client-CXF%3A-org.apache.cxf.interceptor.Fault%3A--Could-not-send-Message.-tp28141672p28142020.html Sent from the cxf-user mailing list archive at Nabble.com.
