I'm not an Axis 1.x expert to help you with this ... May be Dims can help you?

- Ruchith

On 4/2/07, baba Anand <[EMAIL PROTECTED]> wrote:
Hi Ruchit,

At last fine tuning something at Tibco Server end I was able to solve that
exception, as there were some problems with certificate signing.Now i am
getting a different error.

I tried my best to include namespace in body variables but failed. I am
listing my problem, if somebody can help us because I doubt whether this is
possible or not.  I am using Axis 1.4 and wss4j 1.5.

When I am calling service without security I get following SOAP Body:

<soapenv:Body>

<ns1:Request xmlns:ns1="
http://exampleuri.org/SimplePayload.xsd";>

<ns1:FirstName>Mark</ns1: FirstName>

<ns1:LastName>Joe</ns1: LastName>

</ns1:Request>

</soapenv:Body>

 Notice that both FirstName and LastName are prefixed by ns1.

  When I enable security I get following SOAP Body:

<soapenv:Body>

<ns1:Request xmlns:ns1= http://exampleuri.org/SimplePayload.xsd

 xmlns:wsu="
http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd";
wsu:Id="id-19658898">

<FirstName>Mark</FirstName>

<LastName>Joe</LastName>

</ns1:Request>

</soapenv:Body>

 Notice there's no prefix before FirstName and LastName .

  For security, I am just signing the message payload. Following is the
Wss4j Settings:

  WSDoAllSender sender = new WSDoAllSender();

 sender.setOption(WSHandlerConstants. SIG_PROP_FILE ,"crypto.properties" );

 sender.setOption(WSHandlerConstants. SIG_KEY_ID , "DirectReference" );

 sender.setOption(WSHandlerConstants. ACTION ,WSHandlerConstants.SIGNATURE
);

 sender.setOption(WSHandlerConstants. SIG_ALGO ,WSConstants.RSA );

 sender.setOption(WSHandlerConstants. USER , "clientkey" );

 sender.setOption(WSHandlerConstants. PW_CALLBACK_CLASS ,

 PWCallBackImpl. class );

 sender.setOption(WSHandlerConstants. SIGNATURE_PARTS ,"{Element}{http://
exampleuri.org/SimplePayload.xsd}Request" );

  WSDoAllReceiver recv = new WSDoAllReceiver();

 recv.setOption(WSHandlerConstants. SIG_PROP_FILE , "crypto.properties" );

 recv.setOption(WSHandlerConstants. ACTION , WSHandlerConstants.SIGNATURE );

 recv.setOption(WSHandlerConstants. SIG_KEY_ID , "DirectReference" );

 recv.setOption(WSHandlerConstants. USER , "serverkey" );

 recv.setOption(WSHandlerConstants. PW_CALLBACK_CLASS ,PWCallBackImpl.class
);

 recv.setOption(WSHandlerConstants. SIGNATURE_PARTS ,"{Element}{http://
exampleuri.org/SimplePayload.xsd}Response" );

 Following is my Call settings:

  org.apache.axis.description.OperationDesc oper;

 org.apache.axis.description.ParameterDesc param;

 oper = new org.apache.axis.description.OperationDesc();
 oper.setName( "SimpleRequest" );

 param = new org.apache.axis.description.ParameterDesc(new
javax.xml.namespace.QName(
"http://tempuri.org/SimplePayload.xsd"; , "Request"),
org.apache.axis.description.ParameterDesc. IN , new
javax.xml.namespace.QName( "http://exampleuri.org/SimplePayload.xsd"; ,
"RequestType" ),

servicetest.withsecurity.org.tempuri.SimplePayload_xsd.RequestType.
class , false, true);

oper.addParameter(param);

oper.setReturnType( new javax.xml.namespace.QName("http://
exampleuri.org/SimplePayload.xsd" , "ReturnType" ));

oper.setReturnClass(servicetest.withsecurity.org.tempuri.SimplePayload_xsd.ReturnType
.class );

oper.setReturnQName( new javax.xml.namespace.QName("http://
exampleuri.org/SimplePayload.xsd" , "Return" ));

oper.setStyle(org.apache.axis.constants.Style. DOCUMENT );

oper.setUse(org.apache.axis.constants.Use. LITERAL );

_operations [0] = oper;

org.apache.axis.client.Call _call = createCall();

_call.setPassword( "123456" );

_call.setOperation( _operations [0]);

_call.setUseSOAPAction( true );

_call.setSOAPActionURI(
"/WS_Security/SimpleService.serviceagent/SimpleServiceInterfaceEndpoint1/SimpleRequest"
);

_call.setEncodingStyle(
http://schemas.xmlsoap.org/soap/envelope/ );

_call.setProperty(org.apache.axis.client.Call. SEND_TYPE_ATTR ,
Boolean.FALSE );

_call.setProperty(org.apache.axis.AxisEngine. PROP_DOMULTIREFS ,
Boolean.FALSE );

_call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.
SOAP11_CONSTANTS );

_call.setOperationName( new javax.xml.namespace.QName("http://
exampleuri.org/SimplePayload.xsd" , "SimpleRequest" ));

_call.setClientHandlers(sender, recv);

setRequestHeaders(_call);

setAttachments(_call);

try {

java.lang.Object _resp = _call.invoke( new java.lang.Object[]
{messagePart});


I want namespaces specified explicitly for both FirstName and LastName.

Please help.




--
www.ruchith.org
www.wso2.org

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to