Dan

I'm not sure how to do that. Can you show me how to do that for one of the
elments

nmt


dkulp wrote:
> 
> 
> That's the problem:
> 
>         Element passwordElement =
> document.createElement("onBehalfOfPassword");
> 
> You aren't namespace qualifying those elements.    You need to create  
> the elements using the namespace versions and specify the proper  
> namespaces and such.
> 
> Dan
> 
> 
> 
> On Jul 3, 2008, at 1:28 PM, nmt999 wrote:
> 
>>
>> Dan
>>
>> Security headers are added in WSS4JOutInterceptor which is in the
>> createAccountService method. Headers are added in handleMessage() of  
>> my
>> outboundinterceptor that extends AbstracSoapInterceptor which is  
>> given below
>>
>>    private static AccountService createAccountService(String  
>> aServiceURL)
>>    {
>>        AccountService ret = null;
>>
>>        JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
>>        factory.getInInterceptors().add(new LoggingInInterceptor());
>>        factory.getOutInterceptors().add(new LoggingOutInterceptor());
>>        factory.setServiceClass(AccountService.class);
>>        factory.setAddress(aServiceURL);
>>        factory.setBus(BusFactory.getDefaultBus());
>>
>>        ret = (AccountService) factory.create();
>>        Client client = factory.getClientFactoryBean().getClient();
>>        Endpoint endpoint = client.getEndpoint();
>>
>>        // Add any inbound interceptors that are needed
>>        InboundInterceptor inboundInterceptor = new  
>> InboundInterceptor();
>>        endpoint.getInInterceptors().add(inboundInterceptor);
>>
>>        // Add any outbound interceptors that are needed
>>        // Need to add the corresponding SAAJ interceptor if you are  
>> using
>> WSS
>>        // interceptor
>>        Map<String,Object> props = new HashMap<String,Object>();
>>        props.put(WSHandlerConstants.PW_CALLBACK_CLASS,
>> ClientPasswordHandler.class.getName());
>>
>>        WSS4JOutInterceptor wss4jOutInterceptor = new
>> WSS4JOutInterceptor(props);
>>        wss4jOutInterceptor.setProperty(WSHandlerConstants.ACTION,
>> WSHandlerConstants.USERNAME_TOKEN);
>>        wss4jOutInterceptor.setProperty(WSHandlerConstants.USER,
>> _theUsername);
>>         
>> wss4jOutInterceptor.setProperty(WSHandlerConstants.PASSWORD_TYPE,
>> WSConstants.PW_TEXT);
>>
>>        endpoint.getOutInterceptors().add(wss4jOutInterceptor);
>>        endpoint.getOutInterceptors().add(new SAAJOutInterceptor());
>>
>>        OutboundInterceptor outboundInterceptor = new
>> OutboundInterceptor(_theLicense, _theMasterAccountID, null, null,  
>> null,
>> SANDBOX_ACCOUNTSERVICE_NAME);
>>        endpoint.getOutInterceptors().add(outboundInterceptor);
>>
>>        return ret;
>>    }
>>
>>
>> Adding headers
>> =========
>>
>> constructor
>>
>>        super(Phase.WRITE);
>>
>> addBefore("org.apache.cxf.jaxws.handler.soap.SOAPHandlerInterceptor")
>>
>> in handle message
>>
>>         // Add SOAP headers to be sent
>>        Document document = DOMUtils.createDocument();
>>        List<Header> headers = aSoapMessage.getHeaders();
>>
>>        SoapHeader masterAccountIdHeader = null;
>>        Element masterAccountIDElement =
>> document.createElement("masterAccountID");
>>        masterAccountIDElement.setTextContent(_theMasterAccountId);
>>        masterAccountIdHeader = new SoapHeader(new QName(_theYahooURL,
>> _theServiceName), masterAccountIDElement);
>>        headers.add(masterAccountIdHeader);
>>
>>        SoapHeader licenseHeader = null;
>>        Element licenseElement = document.createElement("license");
>>        licenseElement.setTextContent(_theLicense);
>>        licenseHeader = new SoapHeader(new QName(_theYahooURL,
>> _theServiceName), licenseElement);
>>        headers.add(licenseHeader);
>>
>>        SoapHeader accountIDHeader = null;
>>        Element accountIDElement = document.createElement("accountID");
>>        accountIDElement.setTextContent(_theAccountId);
>>        accountIDHeader = new SoapHeader(new QName(_theYahooURL,
>> _theServiceName), accountIDElement);
>>        headers.add(accountIDHeader);
>>
>>        SoapHeader usernameHeader = null;
>>        Element usernameElement =
>> document.createElement("onBehalfOfUsername");
>>        usernameElement.setTextContent(_theUsername);
>>        usernameHeader = new SoapHeader(new QName(_theYahooURL,
>> _theServiceName), usernameElement);
>>        headers.add(usernameHeader);
>>
>>        SoapHeader passwordHeader = null;
>>        Element passwordElement =
>> document.createElement("onBehalfOfPassword");
>>        passwordElement.setTextContent(_thePassword);
>>        passwordHeader = new SoapHeader(new QName(_theYahooURL,
>> _theServiceName), passwordElement);
>>        headers.add(passwordHeader);
>>
>>
>>
>>
>> dkulp wrote:
>>>
>>>
>>> In "Case 2", how are you setting the headers:
>>>>   <masterAccountID>11111111</masterAccountID>
>>>>   <license>999999999</license>
>>>>   <onBehalfOfUsername />
>>>>   <onBehalfOfPassword />
>>>
>>> Without the -exsh true, they wouldn't be method parameters so you are
>>> setting them some other way.  SAAJ handler?   Through the request
>>> context? etc...   I would need to see that code.
>>>
>>> Dan
>>>
>>>
>>>
>>> On Jul 3, 2008, at 10:22 AM, nmt999 wrote:
>>>
>>>>
>>>> In my client developement using cxf to talk to yahoo searchmarketing
>>>> services
>>>> (http://searchmarketing.yahoo.com/developer/docs/V4/wsdl/V4/AccountService.wsdl
>>>> ),
>>>> I have two different implementations. I have them below. Case 1
>>>> works but
>>>> not Case 2. How can I make the Case 2 work.
>>>>
>>>> Does wsdl2java command when used with and without -exsh option  
>>>> make a
>>>> difference for the client when making requests to a webservice. Does
>>>> the two
>>>> soap requests sent any different?
>>>>
>>>> Case 1:
>>>> =====
>>>> wsdl2java used witn -exsh true option
>>>> wsdl2java command used: wsdl2java -client -exsh true -p
>>>> com.test.accountservice AccountService.wsdl
>>>>
>>>> Following request was generated and  sent successfully:
>>>> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/ 
>>>> envelope/">
>>>> <soap:Header>
>>>>    <ns2:onBehalfOfUsername
>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>>>> xmlns:ns3="http://schemas.xmlsoap.org/ws/2002/07/secext";
>>>> xmlns:ns2="http://marketing.ews.yahooapis.com/V4"; xsi:nil="true" />
>>>>    <ns2:onBehalfOfPassword
>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>>>> xmlns:ns3="http://schemas.xmlsoap.org/ws/2002/07/secext";
>>>> xmlns:ns2="http://marketing.ews.yahooapis.com/V4"; xsi:nil="true" />
>>>>    <ns2:masterAccountID
>>>> xmlns:ns3="http://schemas.xmlsoap.org/ws/2002/07/secext";
>>>> xmlns:ns2="http://marketing.ews.yahooapis.com/V4";>11111111</
>>>> ns2:masterAccountID>
>>>>    <ns2:license xmlns:ns3="http://schemas.xmlsoap.org/ws/2002/07/secext 
>>>> "
>>>> xmlns:ns2="http://marketing.ews.yahooapis.com/V4";>9999999</
>>>> ns2:license>
>>>>    <ns3:Security xmlns:ns3="http://schemas.xmlsoap.org/ws/2002/07/
>>>> secext"
>>>> xmlns:ns2="http://marketing.ews.yahooapis.com/V4";>
>>>>            <UsernameToken>
>>>>                    <Username>username</Username>
>>>>                    <Password>password</Password>
>>>>            </UsernameToken>
>>>>    </ns3:Security>
>>>> </soap:Header>
>>>> <soap:Body>
>>>>   <ns2:getAccountStatus
>>>> xmlns:ns2="http://marketing.ews.yahooapis.com/V4
>>>> "
>>>> xmlns:ns3="http://schemas.xmlsoap.org/ws/2002/07/secext";>
>>>>       <ns2:accountID>222222222</ns2:accountID>
>>>>   </ns2:getAccountStatus>
>>>> </soap:Body>
>>>> </soap:Envelope>
>>>>
>>>> Response received successfully
>>>>
>>>> Case 2:
>>>> =====
>>>> wsdl2java used without the exsh option
>>>> wsdl2java command used: wsdl2java -client -p com.test.accountservice
>>>> AccountService.wsdl
>>>>
>>>> Following request was generated and sent successfully:
>>>> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/ 
>>>> envelope/">
>>>> <soap:Header>
>>>> <wsse:Security
>>>> xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd
>>>> "
>>>> soap:mustUnderstand="1">
>>>>   <wsse:UsernameToken
>>>> xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd
>>>> "
>>>> xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd
>>>> "
>>>> wsu:Id="UsernameToken-24164377">
>>>>       <wsse:Username
>>>> xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd
>>>> ">username</wsse:Username>
>>>>       <wsse:Password
>>>> xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd
>>>> "
>>>> Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText
>>>> ">password</wsse:Password>
>>>>   </wsse:UsernameToken></wsse:Security>
>>>>   <masterAccountID>11111111</masterAccountID>
>>>>   <license>999999999</license>
>>>>   <onBehalfOfUsername />
>>>>   <onBehalfOfPassword />
>>>>   </soap:Header>
>>>> <soap:Body>
>>>>   <ns2:getAccountStatus
>>>> xmlns:ns2="http://marketing.ews.yahooapis.com/V4
>>>> "
>>>> xmlns:ns3="http://schemas.xmlsoap.org/ws/2002/07/secext";>
>>>>       <ns2:accountID>222222222</ns2:accountID>
>>>>   </ns2:getAccountStatus>
>>>> </soap:Body>
>>>> </soap:Envelope>
>>>>
>>>> Response received has soap fault as below:
>>>>    <soap:Fault><faultcode>soap:Server</faultcode>
>>>>    <faultstring>An internal error has occurred.</faultstring>
>>>>            <detail>
>>>>                    <yns:ApiFault 
>>>> xmlns:yns="http://marketing.ews.yahooapis.com/V4";>
>>>>                            <yns:code
>>>> xmlns:yns="http://marketing.ews.yahooapis.com/V4";>E1002</yns:code>
>>>>                            <yns:message 
>>>> xmlns:yns="http://marketing.ews.yahooapis.com/ 
>>>> V4">An
>>>> internal error has occurred.</yns:message>
>>>>                    </yns:ApiFault>
>>>>    </detail>
>>>>    </soap:Fault>
>>>>
>>>>
>>>> Regards
>>>> nmt
>>>> -- 
>>>> View this message in context:
>>>> http://www.nabble.com/Does-wsdl2java-command-when-used-with-and-without--exsh-option-make-a-difference-for-the-client-when-making-requests-to-a-webservice-tp18260156p18260156.html
>>>> Sent from the cxf-user mailing list archive at Nabble.com.
>>>>
>>>
>>> ---
>>> Daniel Kulp
>>> [EMAIL PROTECTED]
>>> http://www.dankulp.com/blog
>>>
>>>
>>>
>>>
>>>
>>>
>>
>> -- 
>> View this message in context:
>> http://www.nabble.com/Does-wsdl2java-command-when-used-with-and-without--exsh-option-make-a-difference-for-the-client-when-making-requests-to-a-webservice-tp18260156p18264430.html
>> Sent from the cxf-user mailing list archive at Nabble.com.
>>
> 
> ---
> Daniel Kulp
> [EMAIL PROTECTED]
> http://www.dankulp.com/blog
> 
> 
> 
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Does-wsdl2java-command-when-used-with-and-without--exsh-option-make-a-difference-for-the-client-when-making-requests-to-a-webservice-tp18260156p18264746.html
Sent from the cxf-user mailing list archive at Nabble.com.

Reply via email to