Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Richiesta gpGeneraIuv fallita #39

Closed
pievealessandro opened this issue Jul 7, 2017 · 13 comments
Closed

Richiesta gpGeneraIuv fallita #39

pievealessandro opened this issue Jul 7, 2017 · 13 comments

Comments

@pievealessandro
Copy link

Buongiorno quando eseguo una richiesta per la generazione di IUV ricevo il seguente errore:

13:01:49,284 AVVERTENZA [org.apache.cxf.phase.PhaseInterceptorChain] (http--127.0.0.1-8080-1) Interceptor for {http://www.govpay.it/servizi/}PagamentiTelematiciGPAppService#{http://www.govpay.it/servizi/}gpGeneraIuv has thrown exception, unwinding now: org.apache.cxf.interceptor.Fault: Message part {http://www.govpay.it/servizi/commons/}metaInfo was not recognized. (Does it exist in service WSDL?) at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:197) [cxf-rt-core-2.4.6.jar:2.4.6] at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263) [cxf-api-2.4.6.jar:2.4.6] at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) [cxf-rt-core-2.4.6.jar:2.4.6] at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:207) [cxf-rt-transports-http-2.4.6.jar:2.4.6] at org.jboss.wsf.stack.cxf.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:91) at org.jboss.wsf.stack.cxf.transport.ServletHelper.callRequestHandler(ServletHelper.java:169) at org.jboss.wsf.stack.cxf.CXFServletExt.invoke(CXFServletExt.java:87) at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:185) [cxf-rt-transports-http-2.4.6.jar:2.4.6] at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:108) [cxf-rt-transports-http-2.4.6.jar:2.4.6] at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final] at org.jboss.wsf.stack.cxf.CXFServletExt.service(CXFServletExt.java:135) at org.jboss.wsf.spi.deployment.WSFServlet.service(WSFServlet.java:140) [jbossws-spi-2.0.3.GA.jar:2.0.3.GA] at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329) [jbossweb-7.0.13.Final.jar:] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.13.Final.jar:] at org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:62) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) [jbossweb-7.0.13.Final.jar:] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.13.Final.jar:] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [jbossweb-7.0.13.Final.jar:] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) [jbossweb-7.0.13.Final.jar:] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:489) [jbossweb-7.0.13.Final.jar:] at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155) [jbossweb-7.0.13.Final.jar:] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb-7.0.13.Final.jar:] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb-7.0.13.Final.jar:] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368) [jbossweb-7.0.13.Final.jar:] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [jbossweb-7.0.13.Final.jar:] at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671) [jbossweb-7.0.13.Final.jar:] at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930) [jbossweb-7.0.13.Final.jar:] at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_80]

Credo che il codVersamentoEnte che invio sia errato, da manuale viene specificato come segue:
"Identificativo del versamento nel dominio dell'applicazione che lo gestisce", ma sul portale
GovpayConsole a quale campo corrisponde ?
Grazie anticipatamente

@nardil
Copy link
Member

nardil commented Jul 7, 2017

Dall'errore mi risulta un problema nella sintassi della richiesta:

Message part {http://www.govpay.it/servizi/commons/}metaInfo was not recognized.

Puoi riportare il messaggio di gpGeneraIuv che stai inviando recuperandolo dal file govpay_dump.log?

@pievealessandro
Copy link
Author

pievealessandro commented Jul 10, 2017

Ho verificato ed effettivamente dal log compare questo:

<e5d674f1-5af3-4605-8174-cae299452b3a> Type:REQUEST_IN Content-Type:text/xml; charset=utf-8 ------ Header ------ Authorization=Basic Z3BhZG1pbjoxMjM= connection=Keep-Alive Content-Length=535 content-type=text/xml; charset=utf-8 host=localhost:8080 SOAPAction="gpGeneraIuv" user-agent=PHP-SOAP/5.6.30 ------ Content ------ Size:513 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.govpay.it/servizi/gpApp/" xmlns:ns2="http://www.govpay.it/servizi/commons/"><SOAP-ENV:Header/><SOAP-ENV:Body><ns1:gpGeneraIuv> <codApplicazione>xxxxxx</codApplicazione> <codDominio>xxxxxx</codDominio> <iuvRichiesto> <codVersamentoEnte>xxxxxx</codVersamentoEnte> <importoTotale>xxxxxx</importoTotale></iuvRichiesto> </ns1:gpGeneraIuv><ns2:metaInfo/></SOAP-ENV:Body></SOAP-ENV:Envelope>

Ma in realta la stringa xml che gli mando è la seguente 👍

<ns1:gpGeneraIuv>
<codApplicazione>xxxxxx</codApplicazione>
 <codDominio>xxxxxx</codDominio>
  <iuvRichiesto>
  <codVersamentoEnte>xxxxxx</codVersamentoEnte>
  <importoTotale>xxxxxx</importoTotale></iuvRichiesto>
</ns1:gpGeneraIuv>

Sei a conoscenza di qualche problematica per l'utilizzo con le Soap Client di php ?
Grazie anticipatamente per la disponibilità che stai dimostrando

@nardil
Copy link
Member

nardil commented Jul 10, 2017

C'è un errore nella gestione dell'Header metaInfo che viene inserito erroneamente nel Body rendendo il messaggio sintatticamente non valido.

Il problema potrebbe dipendere da una errata generazione del client o ad un bug php. Dal momento che non hai necessità di valorizzare quel campo, come rapido workaround potresti semplicemente rimuoverlo dal WSDL e rigenerare il client.

@pievealessandro
Copy link
Author

ok non ho ancora chiaro se il problema è su client o un bug su php, ma volessi valorizzarlo come devo gestirlo ?
Sulla documentazione "Manuale di Integrazione SOAP del 15/03/2017 - ver. 2.3.1.2" non ho trovato niente al riguardo su metainfo.
La soluzione che mi hai consigliato te, sarebbe di rimuoverslo dal wsdl (GpApp_2.3.wsdl) e ricompilare il progetto ?

@nardil
Copy link
Member

nardil commented Jul 10, 2017

ok non ho ancora chiaro se il problema è su client o un bug su php, ma volessi valorizzarlo come devo gestirlo ?

L'header deve comparire nella sezione Header della busta SOAP, non nel campo Body come nel messaggio campione che mi hai inviato. L'unica funzionalità legata all'header in questione è per la definizione di un prefisso personalizzato negli IUV generati da GovPay.

Sulla documentazione "Manuale di Integrazione SOAP del 15/03/2017 - ver. 2.3.1.2" non ho trovato niente al riguardo su metainfo.

Trovi informazioni nell'introduzione al capitolo 4 "Web Services per l'integrazione a GovPay"

La soluzione che mi hai consigliato te, sarebbe di rimuoverslo dal wsdl (GpApp_2.3.wsdl) e ricompilare il progetto ?

Non e' necessario intervenire su GovPay. E' sufficiente che il WSDL utilizzato per la generazione del Client PHP sia modificato come segue:
GPApp.2.3.phpfix.txt

@pievealessandro
Copy link
Author

Si ho provato a carciare un wsdl modificato (senza metainfo) ed effettivamente il codice IUV viene generato.
Grazie per il supporto.

@smettickmax
Copy link

smettickmax commented Dec 5, 2017

Buongiorno,
ho ricompilato il client php con il file in GPApp.2.3.phpfix.txt ma continuo ad avere lo stesso errore. Utilizzo GovPay 2.3.3. Allego il client generato.
wsGPApp.zip
Grazie per il supporto

@nardil
Copy link
Member

nardil commented Dec 5, 2017

Ciao @smettickmax, le interfacce applicative non sono cambiate dalla versione 2.3.1 alla 2.3.3, quindi non hai necessita' di ricompilare/rigenerare il client.

Se comunque hai necessita' di supporto per l'errore in questione, dovresti allegare i log di govpay e dell'application server.

@nardil nardil reopened this Dec 5, 2017
@smettickmax
Copy link

smettickmax commented Dec 5, 2017

Grazie intanto per il rapido supporto, di seguito allego i log generati
GOVPAY_DUMP.LOG
mi sembra lo stesso errore che aveva pievealessandro, ho preso il wsdlfix porposto sopra, da questo ho rigenerato le classi in php che ho integrato nella soluzione client

@nardil
Copy link
Member

nardil commented Dec 5, 2017

Il problema e' esattamente lo stesso. Ti suggerisco di rigenerare lo stub a partire dal WSDL rimuovendo anche la definizione dell'header metaInfo (anche se non viene utilizzata in nessun messaggio nella versione modificata)

<xsd:element name="metaInfo" nillable="true">
   ....
</xsd:element>

@smettickmax
Copy link

Buon pomeriggio, non funziona ancora. Ma devo ricompilare GovPay?
Grazie

@nardil
Copy link
Member

nardil commented Dec 5, 2017

E' impossibile che il messaggio contenga ancora l'elemento MetaInfo avendolo rimosso dal WSDL. Evidentemente ci sono dei refusi nel codice.

Ti suggerisco di eliminare il codice attualmente generato e procedere ad una nuova generazione degli stub.

@smettickmax
Copy link

Buon pomeriggio,
come suggerito ho rigenerato le classi php dal WSDL dopo aver rimosso ogni riferimento all'elemento MetaInfo, non ho quindi ricompilato il GovPay. L'errore su metaInfo è sempre lo stesso.
Allego per chiarezza sia le classi php generate che il wdsl da cui le ho generate. Allego anche il client php di test.
Ringrazio anticipatamente per il prezioso supporto.
wsGPApp (1).zip
GPApp.2.3.phpfix_.txt
test_govpay.php.txt

@nardil nardil closed this as completed Jun 7, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants