Re: Problem with webservice call: org.xml.sax.SAXException [message #180131 is a reply to message #180130] |
Thu, 10 January 2013 23:09 |
Jerry Stuckle
Messages: 2598 Registered: September 2010
Karma:
|
Senior Member |
|
|
On 1/10/2013 3:39 PM, Jens Riedel wrote:
> Am 10.01.2013 17:44, schrieb Jerry Stuckle:
>
>> Impossible to tell from the information given. You didn't show your
>> SOAP calls, the class you're trying to instantiate or the XML being
>> returned by the server.
>
> Here is some more information:
>
> the XML of my SOAP request:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <SOAP-ENV:Envelope
> xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
> xmlns:ns4="KreditkartenzahlungWS"
> SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
> <SOAP-ENV:Body>
> <ns4:validierenKreditkarte>
> <mandantNr xsi:type="xsd:string">12345678</mandantNr>
> <kreditkarte>
> <OBJTypeNS>
> <namespace
> xsi:type="xsd:string">http://www.bff.bund.de/ePayment</namespace>
> <type xsi:type="xsd:string">Kreditkarte</type></OBJTypeNS>
> <karteninhaber xsi:type="xsd:string">Testname</karteninhaber>
> <kreditkartenNr xsi:type="xsd:string">242342424234</kreditkartenNr>
> <gueltigkeit xsi:type="xsd:string">01012050</gueltigkeit>
> <kartenpruefnummer
> xsi:type="xsd:string">666</kartenpruefnummer></kreditkarte>
> <waehrungskennzeichen
> xsi:type="xsd:string">EUR</waehrungskennzeichen></ns4:validierenKreditkarte >
>
> </SOAP-ENV:Body>
> </SOAP-ENV:Envelope>
>
>
> the following XML is returned from the server:
>
> <?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:Body>
> <soapenv:Fault>
> <faultcode>soapenv:Server.userException</faultcode>
> <faultstring>org.xml.sax.SAXException: Invalid element in
> de.bund.bff.epayment.webservice.bean.KreditkarteBean -
> OBJTypeNS</faultstring>
> <detail>
> <ns1:stackTrace
> xmlns:ns1="http://xml.apache.org/axis/">org.xml.sax.SAXException:
> Invalid element in de.bund.bff.epayment.webservice.bean.KreditkarteBean
> - OBJTypeNS
> at
> org.apache.axis.encoding.ser.BeanDeserializer.onStartChild(BeanDeserializer .java(Compiled
> Code))
> at
> org.apache.axis.encoding.DeserializationContext.startElement(Deserializatio nContext.java(Compiled
> Code))
> at
> org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java(Com piled
> Code))
> at
> org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java (Inlined
> Compiled Code))
> at
> org.apache.axis.message.RPCElement.deserialize(RPCElement.java(Compiled
> Code))
> at
> org.apache.axis.message.RPCElement.getParams(RPCElement.java(Inlined
> Compiled Code))
> at
> org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java( Compiled
> Code))
> at
> org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java(Compil ed
> Code))
> at
> org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java (Compiled
> Code))
> at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java(Compiled
> Code))
> at org.apache.axis.SimpleChain.invoke(SimpleChain.java(Compiled Code))
> at
> org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java(Compiled
> Code))
> at
> org.apache.axis.server.AxisServer.invoke(AxisServer.java(Compiled Code))
> at
> org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java(Compiled
> Code))
> at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled
> Code))
> at
> org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java (Compiled
> Code))
> at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled
> Code))
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicatio nFilterChain.java(Compiled
> Code))
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterC hain.java(Compiled
> Code))
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.j ava(Compiled
> Code))
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveConte xt.java(Compiled
> Code))
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java(Comp iled
> Code))
> at
> org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContex tValve.java(Compiled
> Code))
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.j ava(Compiled
> Code))
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveConte xt.java(Compiled
> Code))
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java(Comp iled
> Code))
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java(Co mpiled
> Code))
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveConte xt.java(Compiled
> Code))
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java(Co mpiled
> Code))
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveConte xt.java(Compiled
> Code))
> at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java(Compil ed
> Code))
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveConte xt.java(Compiled
> Code))
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java(Comp iled
> Code))
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.jav a(Compiled
> Code))
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveConte xt.java(Compiled
> Code))
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java(Comp iled
> Code))
> at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java(Compiled Code))
>
> at
> org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java(Compiled
> Code))
> at
> org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java(Compiled Code))
>
> at
> org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java(Compiled
> Code))
> at
> org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java(Compiled
> Code))
> at
> org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java(Com piled
> Code))
> at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866)
> at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.ja va:684)
>
> at java.lang.Thread.run(Thread.java:571)
> </ns1:stackTrace>
> <ns2:hostname
> xmlns:ns2="http://xml.apache.org/axis/">lxepyint</ns2:hostname>
> </detail>
> </soapenv:Fault>
> </soapenv:Body>
> </soapenv:Envelope>
>
>
OK, your XML looks fine. But it looks like the server doesn't
understand the OBJTypeNS at it's end. Is this what you had working
before? What does their API documentation say about it?
>
>> But before you get off too far on this, the PEAR package is pretty much
>> defunct. The SOAP functions are now included in the base PHP code. You
>> should be using them instead.
>
> The problem is that the customer wants a solution with the least
> migration effort and the webservice functionality with the PEAR SOAP lib
> is used in a lot of places in the source code... but maybe it will be
> cheaper in the long run to replace it with the PHP5 SOAP functions...
>
> Kind regards
> Jens
>>
>
Been there, done that, got (several) T-shirt(s) :)
Your biggest problem is the PEAR::SOAP package is no longer being
maintained. This *could* be a bug in the package, which will never be
fixed (there are currently 38 open bugs on the package but nothing I
could relate to your problem). It's also possible that a bug was fixed
between your (very) old version and the newer one, but again, a quick
look through the bugs didn't seem to indicate that. I admit I didn't
look closely at every bug, though.
You are going to have to convert sooner or later, or end up running
unsupported code forever. I know it's a hassle, but that will be
cheaper in the long run.
But if you need to get it going now, I'd go back and check the OBJTypeNS
in the API doc as I indicated above - what does the server expect?
I wish I could tell you more detail, but without the doc from the server
API and being unable to test myself, it's hard to make a solid
determination.
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex(at)attglobal(dot)net
==================
|
|
|