Hi,
I have implemented a “Password Protect” publication extension, as described here: https://blogs.sap.com/2015/10/02/publication-extension-password-protect-publication-articrafts/
This works fine when the SIA is run as LocalSystem.
However, when the SIA is run as a Domain Account, due to it being a clustered deployment with the filestore residing on a network share, the publication extension fails:
2017-06-09 16:34:43,476 ERROR [Transport:Shared-8/34] BusinessObjects_PublicationPostProcessingAdminLog_Instance_29502_0 - [Publication ID # 29502] - Post-processing plugin failure! Plugin class com.XXXX.password_protect.PasswordProtection threw an exception. (FBE60405)
java.lang.ClassNotFoundException: com.XXXX.password_protect.PasswordProtection
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
at java.lang.ClassLoader.loadClass(ClassLoader.java:426)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forNameFW(Class.java:357)
at java.lang.Class.forName(Class.java:265)
at com.businessobjects.publisher.postprocessing.PostProcessingUtility.callEventHandlers(PostProcessingUtility.java:638)
at com.businessobjects.publisher.postprocessing.PostProcessingUtility.postProcessScopeBatch(PostProcessingUtility.java:304)
at com.businessobjects.framework.services.oca2.publishing.postprocessing.PublishingPostProcessingService.postProcess(PublishingPostProcessingService.java:85)
at com.businessobjects.framework.services.oca2.publishing.postprocessing.PublishingPostProcessingServiceMessageReceiverInOut.invokeBusinessLogic(PublishingPostProcessingServiceMessageReceiverInOut.java:49)
at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:114)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:181)
at com.businessobjects.framework.servers.platform.modules.pojo.axis2.BIPRequestHandler.process(BIPRequestHandler.java:189)
at com.businessobjects.framework.servers.platform.transport.internal.TransportRequestInterceptor.process(TransportRequestInterceptor.java:128)
at com.crystaldecisions.sdk.occa.transport.internal.BIPTransportImpl.post(BIPTransportImpl.java:90)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.businessobjects.framework.servers.platform.adapters.ebus.orb.CommonTransportInterceptor.invokeHelper(CommonTransportInterceptor.java:116)
at com.businessobjects.framework.servers.platform.adapters.ebus.orb.CommonTransportInterceptor.invoke(CommonTransportInterceptor.java:89)
at com.businessobjects.framework.servers.common.proxy.cglib.MethodInterceptorChain.intercept(MethodInterceptorChain.java:136)
at com.crystaldecisions.enterprise.ocaframework.idl.OCA2.BIPTransportPOA$$EnhancerByCGLIB$$5ce0fb1e.post(<generated>)
at com.crystaldecisions.enterprise.ocaframework.idl.OCA2.BIPTransportPOA._OB_op_post(BIPTransportPOA.java:120)
at com.crystaldecisions.enterprise.ocaframework.idl.OCA2.BIPTransportPOA._invoke(BIPTransportPOA.java:87)
at com.crystaldecisions.thirdparty.com.ooc.OBPortableServer.ServantDispatcher.dispatch(ServantDispatcher.java:234)
at com.crystaldecisions.thirdparty.com.ooc.OBPortableServer.POA_impl._do_OB_dispatch(POA_impl.java:1980)
at com.crystaldecisions.thirdparty.com.ooc.OBPortableServer.POA_impl._OB_dispatch(POA_impl.java:1916)
at com.crystaldecisions.thirdparty.com.ooc.OB.DispatchRequest_impl.invoke(DispatchRequest_impl.java:122)
at com.businessobjects.framework.servers.platform.adapters.ebus.orb.ThreadPoolDispatchStrategy$Dispatcher.run(ThreadPoolDispatchStrategy.java:271)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:812)
2017-06-09 16:34:43,507 ERROR [Transport:Shared-8/34] BusinessObjects_PublicationPostProcessingAdminLog_Instance_29502_0 - [Publication ID # 29502] - An exception was caught during post-processing. (FBE60401)
com.businessobjects.publisher.exception.PublishingException$PostProcessingPluginClassNotFound: The Post-Processing plugin with class com.XXXX.password_protect.PasswordProtection could not be located. Did you configure your publication properly? (FBE42003)
at com.businessobjects.publisher.postprocessing.PostProcessingUtility.callEventHandlers(PostProcessingUtility.java:655)
at com.businessobjects.publisher.postprocessing.PostProcessingUtility.postProcessScopeBatch(PostProcessingUtility.java:304)
at com.businessobjects.framework.services.oca2.publishing.postprocessing.PublishingPostProcessingService.postProcess(PublishingPostProcessingService.java:85)
at com.businessobjects.framework.services.oca2.publishing.postprocessing.PublishingPostProcessingServiceMessageReceiverInOut.invokeBusinessLogic(PublishingPostProcessingServiceMessageReceiverInOut.java:49)
at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:114)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:181)
at com.businessobjects.framework.servers.platform.modules.pojo.axis2.BIPRequestHandler.process(BIPRequestHandler.java:189)
at com.businessobjects.framework.servers.platform.transport.internal.TransportRequestInterceptor.process(TransportRequestInterceptor.java:128)
at com.crystaldecisions.sdk.occa.transport.internal.BIPTransportImpl.post(BIPTransportImpl.java:90)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.businessobjects.framework.servers.platform.adapters.ebus.orb.CommonTransportInterceptor.invokeHelper(CommonTransportInterceptor.java:116)
at com.businessobjects.framework.servers.platform.adapters.ebus.orb.CommonTransportInterceptor.invoke(CommonTransportInterceptor.java:89)
at com.businessobjects.framework.servers.common.proxy.cglib.MethodInterceptorChain.intercept(MethodInterceptorChain.java:136)
at com.crystaldecisions.enterprise.ocaframework.idl.OCA2.BIPTransportPOA$$EnhancerByCGLIB$$5ce0fb1e.post(<generated>)
at com.crystaldecisions.enterprise.ocaframework.idl.OCA2.BIPTransportPOA._OB_op_post(BIPTransportPOA.java:120)
at com.crystaldecisions.enterprise.ocaframework.idl.OCA2.BIPTransportPOA._invoke(BIPTransportPOA.java:87)
at com.crystaldecisions.thirdparty.com.ooc.OBPortableServer.ServantDispatcher.dispatch(ServantDispatcher.java:234)
at com.crystaldecisions.thirdparty.com.ooc.OBPortableServer.POA_impl._do_OB_dispatch(POA_impl.java:1980)
at com.crystaldecisions.thirdparty.com.ooc.OBPortableServer.POA_impl._OB_dispatch(POA_impl.java:1916)
at com.crystaldecisions.thirdparty.com.ooc.OB.DispatchRequest_impl.invoke(DispatchRequest_impl.java:122)
at com.businessobjects.framework.servers.platform.adapters.ebus.orb.ThreadPoolDispatchStrategy$Dispatcher.run(ThreadPoolDispatchStrategy.java:271)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:812)
Few things i’d like to point out:
- The Domain Account i’m using has full Administraton rights on each BI server in the cluster
- The publication extension has been entered correctly to run “Before Publication Delivery”
- OS is Windows Server 2008 R2
- BI version is 4.2 SP2
Does anybody have any ideas on how to resolve this?
UPDATE:
It doesn’t look like the issue lies with the Domain Account - I also have a single server deployment (not clustered), and I have just changed the SIA on this server to run as the same domain account. Once i had done this, I didn’t experience any errors with the publication extension on this server. The problem just seems to be on a clustered installation.
Thanks
Dan
dgarretty (BOB member since 2016-04-05)