Dernière mise à jour le
2 mai 2021
Problème
Lorsque vous utilisez le code API tel que trouvé dans le Guide du développeur pour Reader Extensions 7.2.2 (developer_guide.pdf) pour fournir des autorisations supplémentaires aux documents PDF, vous recevez l’exception suivante :
java.rmi.RemoteException: UserTransaction not bound at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:260) at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:169) at org.apache.axis.encoding.DeserializationContextImpl.endElement(DeserializationContextImpl.java:1015) 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(SAXParser.java:345) at org.apache.axis.encoding.DeserializationContextImpl.parse(DeserializationContextImpl.java:242) at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:538) at org.apache.axis.Message.getSOAPEnvelope(Message.java:376) at org.apache.axis.client.Call.invokeEngine(Call.java:2583) at org.apache.axis.client.Call.invoke(Call.java:2553) at org.apache.axis.client.Call.invoke(Call.java:2248) at org.apache.axis.client.Call.invoke(Call.java:2171) at org.apache.axis.client.Call.invoke(Call.java:1691) at com.twowin.client.wsdl.AdobeExtensionServiceSoapBindingStub.readerExtend(AdobeExtensionServiceSoapBindingStub.java:107) at com.twowin.client.ARESClient.doPost(ARESClient.java:69) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 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.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:72) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102) at org.jboss.web.tomcat.security.JBossSecurityMgrRealm.invoke(JBossSecurityMgrRealm.java:275) 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.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:799) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) at java.lang.Thread.run(Thread.java:534)
Solution
Utilisez l’une ou les deux solutions suivantes, selon vos besoins :
- DataManager et PDFMM ne sont pas accessibles à distance. Par conséquent, exécutez le code client sur le même serveur que ARES. Rédigez votre propre EJB sur le serveur ARES, avec des connexions distantes, puis appelez ce code à partir de la machine distante.
- Assurez-vous que le type de transaction EJB est Bean et non Container :
dans ejb-jar.xml, modifiez le type de transaction de Container à Bean :
<!-- Session Beans --> <session > <description><![CDATA[La session Bean type cette fois-ci en tant que service Web.]]></description> <display-name>service Web d’Adobe Extension pour JBoss.Net</display-name> <ejb-name>AdobeExtensionService</ejb-name> <home>com.twowin.services.AdobeExtensionServiceHome</home> <remote>com.twowin.services.AdobeExtensionService</remote> <ejb-class>com.twowin.services.AdobeExtensionServiceBean</ejb-class> <session-type>Stateless</session-type> <transaction-type>Bean</transaction-type>
Puis, reconfigurez le fichier .ear et déployez-le sur votre serveur d’applications.
Informations supplémentaires
Cette exception peut être levée lors de la tentative de démarrage d’une transaction et les objets DataManager et PDFMM renvoyés par JNDI namingcontext.lookup () sont nuls.
Fournir des autorisations supplémentaires aux documents PDF à l’aide de l’interface utilisateur Web Adobe Reader Extensions fonctionne comme prévu.