J’ai un adapteur (extends LineBasedAdapter) dans lequel je rejette des lignes en fonction de critères. C’est ligne sont ajoutées au fichiers erreur de la supervision.
Comment puis-je indiquer dans le supervision des imports que le traitement est KO. J’ai tenté un setStatus(XMLSupervisor.STATUS_LOAD_ERROR);
Il ne semble pas être pris en compte.
Comme dans l’exemple proposé par Nathalie, il faut faire attention aux comportements par défaut de preprocess et postprocess, susceptibles de renvoyer les tags <simplicite></simplicite>, XML qui renverra le statut “OK”
Cela fonctionne mais à chaque import, j’ai la stacktrace suivante : il manque la balise de fermeture simplicite dans le flow
2020-07-07 08:37:12,726 ERROR [com.simplicite.util.integration.SAXImportXML] SIMPLICITE|http://partenor.simplicite.io:10968||ERROR|designer|com.simplicite.util.integration.SAXImportXML|process||Evénement: Error during XML processing
org.xml.sax.SAXParseException; lineNumber: 4; columnNumber: 1; XML document structures must start and end within the same entity.
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.endEntity(Unknown Source)
at org.apache.xerces.impl.XMLDocumentScannerImpl.endEntity(Unknown Source)
at org.apache.xerces.impl.XMLEntityManager.endEntity(Unknown Source)
at org.apache.xerces.impl.XMLEntityScanner.load(Unknown Source)
at org.apache.xerces.impl.XMLEntityScanner.scanContent(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanContent(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 org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source)
at java.xml/javax.xml.parsers.SAXParser.parse(SAXParser.java:197)
at com.simplicite.util.integration.SAXParserAdapter.process(SAXParserAdapter.java:58)
at com.simplicite.util.integration.SimpleSAXParserAdapter.process(SimpleSAXParserAdapter.java:122)
at com.simplicite.util.engine.Interface.importSAX(Interface.java:954)
at com.simplicite.util.engine.Interface.importSAX(Interface.java:1051)
at com.simplicite.util.engine.Interface.importData(Interface.java:645)
at com.simplicite.util.engine.Interface.importData(Interface.java:522)
at com.simplicite.util.engine.Interface.importADP(Interface.java:439)
at com.simplicite.util.IntegrationDirect.importADP(IntegrationDirect.java:186)
at com.simplicite.util.Integration.importADP(Integration.java:385)
at com.simplicite.webapp.servlets.AbstractIOServlet.doPost(AbstractIOServlet.java:473)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.simplicite.webapp.filters.AuthMethodFilter.doFilter(AuthMethodFilter.java:137)
at com.simplicite.webapp.filters.AbstractFilter.doFilter(AbstractFilter.java:37)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.simplicite.webapp.filters.RewriteFilter.doFilter(RewriteFilter.java:77)
at com.simplicite.webapp.filters.AbstractFilter.doFilter(AbstractFilter.java:37)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:188)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
at com.simplicite.tomcat.valves.APISessionValve.invoke(APISessionValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:832)
Je n’ai pas tout compris du cas d’usage, ni sur votre implémentation d’un adapter spécifique.
Si je comprends bien le flux XML final est tronqué ce qui génère une erreur ?
Quel est le flux en question ?
Est-ce un simple warning sans incidence sur le traitement global ?
Est ce que l’adapter transforme le flux d’entrée en ObjectXML ou fait directement de mise à jour en base sans passer par le langage XML pivot ?
L’adapter doit-il terminer en erreur globalement sans rien importer = KO de type LOADING qui ne processera pas le XML, ou alors doit-il uniquement rejeter certaines lignes = loading ok mais IMPORT KO / partiel ?
Le flux XML s’il est créé avec les objets/helpers Simplicité ObjectXML DataXML… ne peut pas être tronqué car ce sont des objets java dont les toXML() sont forcement corrects (auto fermés).