Von: ravi teja edpuganti [mailto:[EMAIL PROTECTED]
Gesendet: Freitag, 21. Juli 2006 03:30
An: [email protected]
Betreff: Did not understand "MustUnderstand" header(s):{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}SecurityI am relatively newbie to wss4j...i have created a web service using eclipse and installed wss4j 1.5 and configured client and server deployment descriptorswhen i run the server side gives the following errorAxisFault
faultCode: { http://schemas.xmlsoap.org/soap/envelope/}MustUnderstand
faultSubcode:
faultString: Did not understand "MustUnderstand" header(s):{http://do
cs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Securit
y
faultActor:
faultNode:
faultDetail:
{ http://xml.apache.org/axis/}hostname:medworks
Did not understand "MustUnderstand" header(s):{ http://docs.oasis-open.org/wss/20
04/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Security
at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder
.java:222)
at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.
java:129)
at org.apache.axis.encoding.DeserializationContext.endElement(Deserializ
ationContext.java:1087)
at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source
)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknow
n Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContent
Dispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Un
known Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at org.apache.axis.encoding.DeserializationContext.parse(Deserialization
Context.java:227)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
at org.apache.ws.axis.security.WSDoAllReceiver.invoke(WSDoAllReceiver.ja
va:114)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrateg
y.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:190)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at wtp.ConverterSoapBindingStub.celsiusToFarenheit(ConverterSoapBindingS
tub.java:153)
the request soap message is as follows
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv=" http://schemas.xmlsoap.org/soap/envelope/ " xmlns:xsd=" http://www.w3.org/2001/XMLSchema " xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header>
<wsse:Security xmlns:wsse=" http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" soapenv:mustUnderstand="1">
<wsse:UsernameToken xmlns:wsu=" http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd " wsu:Id="UsernameToken-6136700"><wsse:Username>wss4j</wsse:Username>
<wsse:Password Type=" http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest ">SAKMzQCIgxhaG9qr+e12ZAtyqdI=</wsse:Password>
<wsse:Nonce>hoZJ1akfu12bTPWEXOZDLA==</wsse:Nonce>
<wsu:Created>2006-07-20T08:33:58.345Z</wsu:Created>
</wsse:UsernameToken></wsse:Security>
</soapenv:Header><soapenv:Body>
<celsiusToFarenheit xmlns="http://wtp">
<celsius>33.0</celsius>
</celsiusToFarenheit>
</soapenv:Body>
</soapenv:Envelope>
my client wsdd
<deployment xmlns=" http://xml.apache.org/axis/wsdd/ " xmlns:java=" http://xml.apache.org/axis/wsdd/providers/java ">
<transport name="http" pivot="java:org.apache.axis.transport.http.HTTPSender"/>
<globalConfiguration >
<requestFlow >
<handler type="java:org.apache.ws.axis.security.WSDoAllSender" >
<parameter name="action" value="UsernameToken"/>
<parameter name="user" value="wss4j"/>
<parameter name="passwordCallbackClass" value="wtp.PWCallback"/>
<parameter name="passwordType" value="PasswordDigest"/>
</handler>
</requestFlow >
</globalConfiguration >
</deployment>
my server wsdd is
<?xml version="1.0" encoding="UTF-8"?><!-- Use this file to deploy some handlers/chains and services --><!-- Two ways to do this: --><!-- java org.apache.axis.client.AdminClient deploy.wsdd --><!-- after the axis server is running --><!-- or --><!-- java org.apache.axis.utils.Admin client|server deploy.wsdd --><!-- from the same directory that the Axis engine runs --><deployment xmlns=" http://xml.apache.org/axis/wsdd/ " xmlns:java=" http://xml.apache.org/axis/wsdd/providers/java">
<!-- Services from ConverterService WSDL service -->
<service name="Converter" provider="java:RPC" style="wrapped" use="literal">
<requestFlow>
<!--handler type=="java:org.apache.axis.handlers.SOAPMonitorHandler">
<handler type="java:org.apache.ws.axis.security.WSDoAllReceiver">
<parameter name="passwordCallbackClass" value="wtp.PWCallback"/>
<parameter name="action" value="UsernameToken"/>
</handler>
</requestFlow>
<parameter name="wsdlTargetNamespace" value="http://wtp"/>
<parameter name="wsdlServiceElement" value="ConverterService"/>
<parameter name="schemaQualified" value=" http://wtp"/>
<parameter name="wsdlServicePort" value="Converter"/>
<parameter name="className" value="wtp.Converter"/>
<parameter name="wsdlPortType" value="Converter"/>
<parameter name="typeMappingVersion" value="1.2"/>
<operation xmlns:operNS="http://wtp" xmlns:retNS=" http://wtp" xmlns:rtns=" http://www.w3.org/2001/XMLSchema " name="celsiusToFarenheit" qname="operNS:celsiusToFarenheit" returnQName="retNS:celsiusToFarenheitReturn" returnType="rtns:float" soapAction="">
<parameter xmlns:pns="http://wtp" xmlns:tns=" http://www.w3.org/2001/XMLSchema" qname="pns:celsius" type="tns:float"/>
</operation>
<operation xmlns:operNS="http://wtp" xmlns:retNS=" http://wtp" xmlns:rtns=" http://www.w3.org/2001/XMLSchema " name="farenheitToCelsius" qname="operNS:farenheitToCelsius" returnQName="retNS:farenheitToCelsiusReturn" returnType="rtns:float" soapAction="">
<parameter xmlns:pns="http://wtp" xmlns:tns=" http://www.w3.org/2001/XMLSchema" qname="pns:farenheit" type="tns:float"/>
</operation>
<parameter name="allowedMethods" value="farenheitToCelsius celsiusToFarenheit"/>
</service>
</deployment>
can some one help me out with this...
i am really struck at this
regards
ravi teja
My assumption is that the server's wsdd is not found by
the
server - can you check if the wsdd is in the correct
place
(path)?
Regards,
Werner
