axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Anne Thomas Manes <atma...@gmail.com>
Subject Re: WSE402: The message does not conform to the policy it was mapped to.
Date Thu, 27 Oct 2005 22:36:08 GMT
The service is implemented using .NET + WSE.
In addition to the WSDL, the service contract is also defined using
WS-Policy, and I assume there is a policy defined using WS-SecurityPolicy.
You need to make sure that your message contains an appropriate WS-Security
header as defined by the security policy.

Anne

On 10/26/05, Chris Mannion <chris.mannion@itjunction.com> wrote:
>
> Hi all
>  I have a generic webclient build in axis to be able to interact with
> whichever webserivce it is pointed at. It has worked against several
> services in the past but on trying to hook up with a new webservice I'm
> getting an error message that I don't really understand. On looking up the
> error message it seems to be somehow linked to X509 certificates but, while
> there is a certificate in my Java keystore to allow SSL interaction with the
> webservice, the (extensive, if not very helpful) documentation I have for
> the webservice makes no mention of having to sign or encrypt or give tokens
> with messages to the operation I'm trying to use (other operations do
> require tokens and the documentation says as much). The web service is .Net
> based, which I know because the administrators of it can't help me with my
> problem due to knowing nothing about Java.
>  Anyway, the relevant parts of my client code are very straight forward as
> follows:
>  ServiceFactory serviceFactory = ServiceFactory.newInstance();
> webService = serviceFactory.createService(wsdlUrl, serviceQName);
> ...
> Call opCall = webService.createCall(portQName, operationName);
> ...
> opCall.invoke(values);
>  where values is an object array of the parameters to be passed.
>  The relevant parts of the WSDL I'm running against are:
>  <?xml version="1.0" encoding="utf-8"?>
> <wsdl:definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="
> http://www.w3.org/2001/XMLSchema" xmlns:soapenc="
> http://schemas.xmlsoap.org/soap/encoding/"
> xmlns:tns="urn:GSO-System-Services:external:1.65:PortalInterface"
> xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="
> http://schemas.xmlsoap.org/wsdl/mime/"
> targetNamespace="urn:GSO-System-Services:external:1.65:PortalInterface"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
> <wsdl:types>
> <s:schema elementFormDefault="qualified"
> targetNamespace="urn:GSO-System-Services:external:1.65:PortalInterface">
> <s:element name="GsoRegisterPrincipalUserID">
> <s:complexType>
> <s:sequence>
> <s:element minOccurs="0" maxOccurs="1" name="inputXml" type="s:string" />
> </s:sequence>
> </s:complexType>
> </s:element>
> <s:element name="GsoRegisterPrincipalUserIDResponse">
> <s:complexType>
> <s:sequence>
> <s:element minOccurs="0" maxOccurs="1" name="outputXml" type="s:string" />
> </s:sequence>
> </s:complexType>
> </s:element>
> </s:schema>
> </wsdl:types>
>
> <wsdl:message name="GsoRegisterPrincipalUserIDSoapIn">
> <wsdl:part name="parameters" element="tns:GsoRegisterPrincipalUserID" />
> </wsdl:message>
> <wsdl:message name="GsoRegisterPrincipalUserIDSoapOut">
> <wsdl:part name="parameters"
> element="tns:GsoRegisterPrincipalUserIDResponse" />
> </wsdl:message>
>
> <wsdl:portType name="GatewaySoapPortalSoap">
> <wsdl:operation name="GsoRegisterPrincipalUserID">
> <wsdl:input message="tns:GsoRegisterPrincipalUserIDSoapIn" />
> <wsdl:output message="tns:GsoRegisterPrincipalUserIDSoapOut" />
> </wsdl:operation>
> </wsdl:portType>
>
> <wsdl:binding name="GatewaySoapPortalSoap"
> type="tns:GatewaySoapPortalSoap">
> <soap:binding transport="http://schemas.xmlsoap.org/soap/http"
> style="document" />
> <wsdl:operation name="GsoRegisterPrincipalUserID">
> <soap:operation soapAction="urn:GSO-System-Services:external:
> 1.65:PortalInterface/GsoRegisterPrincipalUserID" style="document" />
> <wsdl:input>
> <soap:body use="literal" />
> </wsdl:input>
> <wsdl:output>
> <soap:body use="literal" />
> </wsdl:output>
> </wsdl:operation>
> </wsdl:binding>
>
> <wsdl:service name="GatewaySoapPortal">
> <wsdl:port name="GatewaySoapPortalSoap"
> binding="tns:GatewaySoapPortalSoap">
> <soap:address location="
> https://secure.gateway.gov.vm/SOAP/Portal/GatewaySoapPortal.asmx" />
> </wsdl:port>
> </wsdl:service>
> </wsdl:definitions>
>   So, I'm making a call against the operation named
> RegisterPrincipalUserID and recieving the following error message in
> repsonse:
>  AxisFault
> faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Client<http://schemas.xmlsoap.org/soap/envelope/%7DClient>
> faultSubcode:
> faultString: WSE402: The message does not conform to the policy it was
> mapped to.
> faultActor: urn:GSO-System-Services:external:1.65:PortalInterface
> faultNode:
> faultDetail:
> {http://xml.apache.org/axis/}stackTrace:WSE402<http://xml.apache.org/axis/%7DstackTrace:WSE402>:
> The message does not conform to the policy it was mapped to.
> at org.apache.axis.message.SOAPFaultBuilder.createFault(
> SOAPFaultBuilder.java:221)
> at org.apache.axis.message.SOAPFaultBuilder.endElement(
> SOAPFaultBuilder.java:128)
> at org.apache.axis.encoding.DeserializationContext.endElement(
> DeserializationContext.java:1087)
> at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
> at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown
> Source)
> at
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
> Source)
> at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
> 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(
> DeserializationContext.java:227)
> at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
> at org.apache.axis.Message.getSOAPEnvelope(Message.java:424)
> at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(
> MustUnderstandChecker.java:62)
> at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
> at org.apache.axis.client.Call.invokeEngine(Call.java:2765)
> at org.apache.axis.client.Call.invoke(Call.java:2748)
> at org.apache.axis.client.Call.invoke(Call.java:2424)
> at org.apache.axis.client.Call.invoke(Call.java:2347)
> at org.apache.axis.client.Call.invoke(Call.java:1804)
> at govConnect.WebServiceTools.call(WebServiceTools.java:177)
> at govConnect.WebServiceTools.call(WebServiceTools.java:95)
> at govConnect.GovConnect.register(GovConnect.java:77)
> at govConnect.Tests.service(Tests.java:17)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
> at org.apache.catalina.servlets.InvokerServlet.serveRequest(
> InvokerServlet.java:419)
> at org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServlet.java
> :133)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
> ApplicationFilterChain.java:237)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java:157)
> at org.apache.catalina.core.StandardWrapperValve.invoke(
> StandardWrapperValve.java:214)
> at org.apache.catalina.core.StandardValveContext.invokeNext(
> StandardValveContext.java:104)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java
> :520)
> at org.apache.catalina.core.StandardContextValve.invokeInternal(
> StandardContextValve.java:198)
> at org.apache.catalina.core.StandardContextValve.invoke(
> StandardContextValve.java:152)
> at org.apache.catalina.core.StandardValveContext.invokeNext(
> StandardValveContext.java:104)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java
> :520)
> at org.apache.catalina.core.StandardHostValve.invoke(
> StandardHostValve.java:137)
> at org.apache.catalina.core.StandardValveContext.invokeNext(
> StandardValveContext.java:104)
> at org.apache.catalina.valves.ErrorReportValve.invoke(
> ErrorReportValve.java:117)
> at org.apache.catalina.core.StandardValveContext.invokeNext(
> StandardValveContext.java:102)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java
> :520)
> at org.apache.catalina.core.StandardEngineValve.invoke(
> StandardEngineValve.java:109)
> at org.apache.catalina.core.StandardValveContext.invokeNext(
> StandardValveContext.java:104)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java
> :520)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
> at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
> at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
> :793)
> at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection
> (Http11Protocol.java:702)
> at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java
> :571)
> at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
> ThreadPool.java:644)
> at java.lang.Thread.run(Thread.java:536)
>   {http://xml.apache.org/axis/}hostname:server<http://xml.apache.org/axis/%7Dhostname:server>
>  Can anyone help me with what might be causeing the fault, does it imply
> that my messages do have to be signed/encrypted or could something else be
> the problem? Thanks.
>
> Chris Mannion
> IT Junction
> 020 8452 4274
>

Mime
View raw message