Problem
Wenn Sie den API-Code verwenden, wie im Entwicklerleitfaden für Reader Extensions 7.2.2 (developer_guide.pdf) beschrieben, um zusätzliche Berechtigungen in PDF-Dokumenten zur Verfügung zu stellen, erhalten Sie folgenden Ausnahmefehler:
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)
Lösung
Wählen Sie je nach Bedarf eine oder beide dieser Lösungen aus:
- DataManager und PDFMM können nicht per Fernzugriff aufgerufen werden. Führen Sie daher Ihren Clientcode auf dem gleichen Server wie ARES aus. Schreiben Sie Ihren eigenen EJB auf dem ARES-Server unter Verwendung von Remote-Verbindungen, und rufen Sie diesen Code dann vom Remote-Rechner aus auf.
- Stellen Sie sicher, dass der EJB-Transaktionstyp Bean und nicht Container ist:
ändern Sie den Transaktionstyp in ejb-jar.xml von Container auf Bean:
<!-- Session Beans --> <session > <description><![CDATA[Die typische Session Bean, diesmal als Webservice.]]></description> <display-name>Adobe Extensions-Webservice für 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>
Dann verpacken Sie die -ear-Datei erneut und stellen Sie auf Ihrem Anwendungsserver bereit.
Weitere Informationen
Diese Ausnahme wird beim Versuch, eine Transaktion zu starten, ausgelöst, und wenn die von JNDI namingcontext.lookup() zurückgegebenen DataManager- und PDFMM-Objekte Null betragen.
Die Bereitstellung zusätzlicher Berechtigungen für PDF-Dokumente mithilfe der Web-Benutzeroberfläche Adobe Reader Extensions funktioniert wie erwartet.
Bei Ihrem Konto anmelden