OIM 11G plugin

Hi
I am developing plugin in OIM 11g but my plugin is not executing since it is in queue waiting for other plugin (developed by someone else) to execute, which got failed and stuck in queue. Can anybody tell me how to execute my plugin without waiting for the other one which is above my plugin in orchorder? Deleting the entry or changing the orchorder doesn't work.
Below is the table in which plugin status can be seen..
select * from orchevents WHERE processid=643 ORDER BY orchorder;
Result(not all columns pasted)
ID     NAME               STATUS          
3635     ReconUserPasswordHandler     FAILED          
3630     SetUserNameAndEmailID     NOTSTARTED

Right... turns out you need to use the domain lib folder for anything like this. Just pop your libs in their and everything should have access to them.

Similar Messages

  • OIM 11g Plugin - Third Party Jars : Classloader issue

    Hi All,
    I am having a Plugins.zip under middleware/Oracle_IDM1/server/plugins folder.  [OIM 11g R2]
    This gets invoked from a schedule job.
    I have third party Jars (axis.jar) within Plugins.zip/lib. My code within Plugins.zip calls Thrid Party APIs.
    Now the issue is:
    The APIs (within axis.jar) do not seem to find property files from within their own JARS.
    These property files are within their own Third Party Jars and the Third Party APIs should be able to access them by default. I have tested these APIs from stand alone clients and web clients, they work perfectly.
    But within the Plugins.zip, these third party APIs do not seem to find property files from within their own JARs.
    Looks like some class loader issue. Something must be getting messed up in the way the Third Party JARs from within the Plugins.zip/lib are loaded.
    Has anyone faced similar issue.
    Any suggestions please?
    Thanks,
    Sandeep

    I placed the required JARs under middleware/Oracle_IDM1/server/ThirdParty.
    I also executed UploadJars utility for required JARs.
    I have also added to server startup path : .../middleware/Oracle_IDM1/server/ThirdParty/axis.jar.
    But I still get the following Error:
    java.lang.ExceptionInInitializerError
    Caused By: java.util.MissingResourceException: Cannot find resource 'org.apache.axis.i18n.resource'
    I'm calling axis APIs from my code. The resource "org/apache/axis/i18n/resource.properties" is clearly present inside axis.jar.
    My client works when executed outside of Plugins.zip.
    Please see the full stack trace below:
    java.lang.ExceptionInInitializerError
            at org.apache.axis.utils.Messages.<clinit>(Messages.java:36)
            at org.apache.axis.configuration.EngineConfigurationFactoryFinder$1.run(EngineConfigurationFactoryFinder.java:144)
            at java.security.AccessController.doPrivileged(Native Method)
            at org.apache.axis.configuration.EngineConfigurationFactoryFinder.newFactory(EngineConfigurationFactoryFinder.java:113)
            at org.apache.axis.configuration.EngineConfigurationFactoryFinder.newFactory(EngineConfigurationFactoryFinder.java:160)
            at org.apache.axis.client.Service.getEngineConfiguration(Service.java:813)
            at org.apache.axis.client.Service.getAxisClient(Service.java:104)
            at org.apache.axis.client.Service.<init>(Service.java:113)
            at org.my.company.webservice.SecurityQASyncWS_ServiceLocator.<init>(SecurityQASyncWS_ServiceLocator.java:12)
            at org.my.company.webservice.SecurityQASyncWSClient.invoke(SecurityQASyncWSClient.java:31)
            at com.my.company.idm.xl.schedule.tasks.SecurityQASynchronization.processBatch(SecurityQASynchronization.java:561)
            at com.my.company.idm.xl.schedule.tasks.SecurityQASynchronization.execute(SecurityQASynchronization.java:222)
            at oracle.iam.scheduler.vo.TaskSupport.invokeExecute(TaskSupport.java:183)
            at oracle.iam.scheduler.vo.TaskSupport.access$000(TaskSupport.java:40)
            at oracle.iam.scheduler.vo.TaskSupport$1.processWithoutResult(TaskSupport.java:143)
            at oracle.iam.platform.tx.OIMTransactionCallbackWithoutResult.process(OIMTransactionCallbackWithoutResult.java:9)
            at oracle.iam.platform.tx.OIMTransactionCallback.doInTransaction(OIMTransactionCallback.java:13)
            at oracle.iam.platform.tx.OIMTransactionCallback.doInTransaction(OIMTransactionCallback.java:6)
            at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
            at oracle.iam.platform.tx.OIMTransactionManager.execute(OIMTransactionManager.java:22)
            at oracle.iam.scheduler.vo.TaskSupport.executeJob(TaskSupport.java:125)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.lang.reflect.Method.invoke(Method.java:606)
            at oracle.iam.scheduler.impl.quartz.QuartzJob$TaskExecutionAction.run(QuartzJob.java:268)
            at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
            at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
            at weblogic.security.Security.runAs(Security.java:41)
            at Thor.API.Security.LoginHandler.weblogicLoginSession.runAs(weblogicLoginSession.java:52)
            at oracle.iam.scheduler.impl.quartz.QuartzJob.execute(QuartzJob.java:77)
            at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
            at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:529)
    Caused By: java.util.MissingResourceException: Cannot find resource 'org.apache.axis.i18n.resource'
            at org.apache.axis.i18n.ProjectResourceBundle.getBundle(ProjectResourceBundle.java:288)
            at org.apache.axis.i18n.MessagesConstants.<clinit>(MessagesConstants.java:32)
            at org.apache.axis.utils.Messages.<clinit>(Messages.java:36)
            at org.apache.axis.configuration.EngineConfigurationFactoryFinder$1.run(EngineConfigurationFactoryFinder.java:144)
            at java.security.AccessController.doPrivileged(Native Method)
            at org.apache.axis.configuration.EngineConfigurationFactoryFinder.newFactory(EngineConfigurationFactoryFinder.java:113)
            at org.apache.axis.configuration.EngineConfigurationFactoryFinder.newFactory(EngineConfigurationFactoryFinder.java:160)
            at org.apache.axis.client.Service.getEngineConfiguration(Service.java:813)
            at org.apache.axis.client.Service.getAxisClient(Service.java:104)
            at org.apache.axis.client.Service.<init>(Service.java:113)
            at org.my.company.webservice.SecurityQASyncWS_ServiceLocator.<init>(SecurityQASyncWS_ServiceLocator.java:12)
            at org.my.company.webservice.SecurityQASyncWSClient.invoke(SecurityQASyncWSClient.java:31)
            at com.ets.idm.xl.schedule.tasks.SecurityQASynchronization.processBatch(SecurityQASynchronization.java:561)
            at com.ets.idm.xl.schedule.tasks.SecurityQASynchronization.execute(SecurityQASynchronization.java:222)
            at oracle.iam.scheduler.vo.TaskSupport.invokeExecute(TaskSupport.java:183)
            at oracle.iam.scheduler.vo.TaskSupport.access$000(TaskSupport.java:40)
            at oracle.iam.scheduler.vo.TaskSupport$1.processWithoutResult(TaskSupport.java:143)
            at oracle.iam.platform.tx.OIMTransactionCallbackWithoutResult.process(OIMTransactionCallbackWithoutResult.java:9)
            at oracle.iam.platform.tx.OIMTransactionCallback.doInTransaction(OIMTransactionCallback.java:13)
            at oracle.iam.platform.tx.OIMTransactionCallback.doInTransaction(OIMTransactionCallback.java:6)
            at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
            at oracle.iam.platform.tx.OIMTransactionManager.execute(OIMTransactionManager.java:22)
            at oracle.iam.scheduler.vo.TaskSupport.executeJob(TaskSupport.java:125)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.lang.reflect.Method.invoke(Method.java:606)
            at oracle.iam.scheduler.impl.quartz.QuartzJob$TaskExecutionAction.run(QuartzJob.java:268)
            at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
            at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
            at weblogic.security.Security.runAs(Security.java:41)
            at Thor.API.Security.LoginHandler.weblogicLoginSession.runAs(weblogicLoginSession.java:52)
            at oracle.iam.scheduler.impl.quartz.QuartzJob.execute(QuartzJob.java:77)
            at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
            at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:529)

  • OIM 11g plugin libraries - Axis2 based integration

    Hi all,
    I'm trying to use Axis with one of my plugins. if I bundle the Axis jars in the plugin it sort of works (there are other issues to solve but the libs are picked up) however if I deploy Axis seperately as an application the plugin doesn't seem to be able to find the classes NoClassDefFoundError's all over the place.
    Surely this should work right?
    Appreciate any and all help.
    Wayne.
    Edited by: wblacklock on 11-Apr-2011 01:49
    Edited by: wblacklock on 11-Apr-2011 02:57

    Right... turns out you need to use the domain lib folder for anything like this. Just pop your libs in their and everything should have access to them.

  • Unable to invoke Custom PostProcessEventHandler in OIM 11g R2

    Hi,
    I am working with OIM 11g R2 .I created an custom PostProcessEventHandler to trigger on modify user operation.
    I created a jar file of custom class as xyz.jar
    I created an plugin.xml as:
    <?xml version="1.0" encoding="UTF-8"?>
    <oimplugins>
    <plugins pluginpoint="oracle.iam.platform.kernel.spi.EventHandler">
    <plugin pluginclass="com.xyz.DisablePostProcessEventHandler" version="1.0" name="DisablePostProcessEventHandler">
    </plugin>
    </plugins>
    </oimplugins>
    I made an xyz.zip of plugin.xml and lib/xyz.jar
    I registered the xyz.zip by placing zip file in plugins directory.
    I created an EventHandlers.xml as below:
    <?xml version='1.0' encoding='utf-8'?>
    <eventhandlers xmlns="http://www.oracle.com/schema/oim/platform/kernel"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.oracle.com/schema/oim/platform/kernelorchestration-handlers.xsd">
    <!-- Custom postprocess event handlers -->
    <action-handler
    class="com.xyz.DisablePostProcessEventHandler" entity-type="User" operation="MODIFY" name="DisablePostProcessEventHandler" stage="postprocess" order="9999" sync="TRUE"/>
    </eventhandlers>
    and placed in the path temp/metadata/user/custom/CustomPostProcessHandler and imported it to MDS.
    I purged the cache as ./PurgeCache MetaData.
    When i am trying to modify user i am getting error as below:
    [WARNING] [] [oracle.adf.controller.faces.lifecycle.Utils] [tid: [ACTIVE].ExecuteThread: '7' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: xelsysadm] [ecid: 0000JqaUC9MDoYO_qh5EiY1HJuY90001ve,0] [APP: oracle.iam.console.identity.self-service.ear#V2.0] ADF: Adding the following JSF error message: Localized message not available. Error returned is: JBO-29000: Unexpected exception caught: java.lang.NullPointerException, msg=null[[
    oracle.jbo.JboException: JBO-29000: Unexpected exception caught: java.lang.NullPointerException, msg=null
    at oracle.adf.model.binding.DCInvokeMethod.invokeMethod(DCInvokeMethod.java:699)
    at oracle.adf.model.binding.DCDataControl.invokeMethod(DCDataControl.java:2143)
    at oracle.adf.model.bc4j.DCJboDataControl.invokeMethod(DCJboDataControl.java:3114)
    at oracle.adf.model.binding.DCInvokeMethod.callMethod(DCInvokeMethod.java:261)
    at oracle.jbo.uicli.binding.JUCtrlActionBinding.doIt(JUCtrlActionBinding.java:1635)
    at oracle.adf.model.binding.DCDataControl.invokeOperation(DCDataControl.java:2150)
    at oracle.jbo.uicli.binding.JUCtrlActionBinding.invoke(JUCtrlActionBinding.java:740)
    at oracle.adf.controller.v2.lifecycle.PageLifecycleImpl.executeEvent(PageLifecycleImpl.java:402)
    at oracle.adfinternal.view.faces.model.binding.FacesCtrlActionBinding._execute(FacesCtrlActionBinding.java:252)
    at oracle.adfinternal.view.faces.model.binding.FacesCtrlActionBinding.execute(FacesCtrlActionBinding.java:210)
    at oracle.iam.ui.platform.utils.FacesUtils.executeOperationBinding(FacesUtils.java:165)
    Caused by: java.lang.NullPointerException
    at oracle.iam.request.impl.RequestEngine.startOrchestrationFromPreProcess(RequestEngine.java:5385)
    at oracle.iam.request.impl.RequestEngine.triggerOperation(RequestEngine.java:5297)
    at oracle.iam.request.impl.RequestEngine.doOperation(RequestEngine.java:5028)
    at oracle.iam.impl.OIMServiceImpl.doOperation(OIMServiceImpl.java:43)
    at sun.reflect.GeneratedMethodAccessor2994.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
    at oracle.iam.platform.utils.DMSMethodInterceptor.invoke(DMSMethodInterceptor.java:25)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
    at $Proxy384.doOperation(Unknown Source)
    at oracle.iam.api.OIMServiceEJB.doOperationx(Unknown Source)
    at sun.reflect.GeneratedMethodAccessor4224.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    ## Detail 0 ##
    java.lang.NullPointerException
    at oracle.iam.request.impl.RequestEngine.startOrchestrationFromPreProcess(RequestEngine.java:5385)
    at oracle.iam.request.impl.RequestEngine.triggerOperation(RequestEngine.java:5297)
    at oracle.iam.request.impl.RequestEngine.doOperation(RequestEngine.java:5028)
    at oracle.iam.impl.OIMServiceImpl.doOperation(OIMServiceImpl.java:43)
    at sun.reflect.GeneratedMethodAccessor2994.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
    at oracle.iam.platform.utils.DMSMethodInterceptor.invoke(DMSMethodInterceptor.java:25)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
    at $Proxy384.doOperation(Unknown Source)
    at oracle.iam.api.OIMServiceEJB.doOperationx(Unknown Source)
    at sun.reflect.GeneratedMethodAccessor4224.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
    at com.bea.core.repackaged.springframework.aop.support.Deleg
    Please help me in resolving this issue.

    Hi Suny,
    Yes I restarted the OIM Server but getting same error.
    I have logger in my code and and nothing is getting printed thet menas the code is not getting invoked itself.
    My eventhandler is for postprocess and I am not understanding why i am getting PreProcess error.
    java.lang.NullPointerException
    at oracle.iam.request.impl.RequestEngine.startOrchestrationFromPreProcess(RequestEngine.java:

  • Problem with EventHandler in OIM 11g

    Hi All,
    I followed the Part I(Chapters 6,7 & 30) in pdf file shown below
    http://download.oracle.com/docs/cd/E14571_01/doc.1111/e14309.pdf
    I developed the plugin and registered the plugin for custom eventhandler.
    Iam not able to see the defined eventhandler in design console .
    I am running weblogicImportMetadata.bat (import specific metadata files into the MDS database) as specified in pdf document after making necessary changes.
    After restarting OIM server ,the server is not starting , and showing errors like " target invocation exception","null pointer exception" etc.
    Have anyone done the EventHandler in OIM 11g , if anyone done please provide the followed document link.
    Please suggest to solve the issue.
    Thanks & Regards
    Satish
    Edited by: satish on Sep 17, 2010 4:53 PM
    Edited by: satish on Sep 22, 2010 3:14 PM

    Hello Satish,
    You won't find the eventhandler in the design console. This is by design.
    I had a similar error. Hope this helps you.
    Verify your EventHandlers.xml file. For me one of the entries, particularly stage="preprocess" had the letter 's' in uppercase (Stage="preprocess"). This was the source of my error below.
    <An error occurred while initializing service : {0}
    java.lang.NullPointerException
    Caused by: oracle.iam.platform.utils.ServiceInitializationException: java.lang.NullPointerException
    <Nov 2, 2010 12:30:55 PM PDT> <Warning> <oracle.iam.platform.utils> <IAM-0070016> <An error occurred while initializing service : oracle.iam.platform.kernel.OrchestrationEngine>
    <Nov 2, 2010 12:30:55 PM PDT> <Warning> <oracle.iam.platform.utils> <IAM-0070016> <An error occurred while initializing service : {0}
    java.lang.NoClassDefFoundError: oracle/iam/platform/kernel/impl/KernelObjFactory
    There is definitely a lack of clear documentation around developing plugins (e.g. oim.home in ant.properties should point to OIM home/server).
    I worked with Oracle support and provided some feedback. They are going to publish a KB article soon. I now have a preprocess eventhandler that seems to work.

  • Exception while running custom scheduler OIM 11g R1

    I have OIM 11g R1 installed on win 32 platform, and am getting the following exception while running the custom scheduler: Samplescheduledtask
    <Jan 12, 2013 7:37:13 PM IST> <Warning> <oracle.iam.scheduler.impl> <BEA-000000>
    <XSD Validation Exception: org.xml.sax.SAXParseException: cvc-elt.1: Cannot fin
    d the declaration of element 'scheduledTasks'.>
    <Jan 12, 2013 7:37:13 PM IST> <Warning> <oracle.iam.scheduler.impl> <BEA-000000>
    <XSD Validation Exception: org.xml.sax.SAXParseException: cvc-elt.1: Cannot fin
    d the declaration of element 'scheduledTasks'.>
    <Jan 12, 2013 7:37:13 PM IST> <Warning> <oracle.iam.scheduler.impl> <BEA-000000>
    <XSD Validation Exception: org.xml.sax.SAXParseException: cvc-elt.1: Cannot fin
    d the declaration of element 'scheduledTasks'.>
    <Jan 12, 2013 7:37:13 PM IST> <Warning> <oracle.iam.scheduler.impl> <BEA-000000>
    <XSD Validation Exception: org.xml.sax.SAXParseException: cvc-elt.1: Cannot fin
    d the declaration of element 'scheduledTasks'.>
    <Jan 12, 2013 7:37:13 PM IST> <Warning> <oracle.iam.scheduler.impl> <BEA-000000>
    <XSD Validation Exception: org.xml.sax.SAXParseException: cvc-elt.1: Cannot fin
    d the declaration of element 'scheduledTasks'.>
    <Jan 12, 2013 7:37:13 PM IST> <Warning> <oracle.iam.scheduler.impl> <BEA-000000>
    <XSD Validation Exception: org.xml.sax.SAXParseException: cvc-elt.1: Cannot fin
    d the declaration of element 'scheduledTasks'.>
    java.lang.ClassNotFoundException: ADP ClassLoader failed to load: oracle.iam.sam
    ple.scheduledtask.SampleScheduledTask
    at com.thortech.xl.dataobj.tcADPClassLoader.findClass(tcADPClassLoader.j
    ava:219)
    at oracle.iam.transUI.impl.CustomTaskLoaderImpl.getClassInstance(CustomT
    askLoaderImpl.java:12)
    at oracle.iam.scheduler.impl.quartz.QuartzJob.execute(QuartzJob.java:146
    at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.j
    ava:529)
    java.lang.ClassNotFoundException: ADP ClassLoader failed to load: oracle.iam.sam
    ple.scheduledtask.SampleScheduledTask
    at com.thortech.xl.dataobj.tcADPClassLoader.findClass(tcADPClassLoader.j
    ava:219)
    at oracle.iam.transUI.impl.CustomTaskLoaderImpl.getClassInstance(CustomT
    askLoaderImpl.java:12)
    at oracle.iam.scheduler.impl.quartz.QuartzJob.execute(QuartzJob.java:146
    at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.j
    ava:529)
    java.lang.ClassNotFoundException: ADP ClassLoader failed to load: oracle.iam.sam
    ple.scheduledtask.SampleScheduledTask
    at com.thortech.xl.dataobj.tcADPClassLoader.findClass(tcADPClassLoader.j
    ava:219)
    at oracle.iam.transUI.impl.CustomTaskLoaderImpl.getClassInstance(CustomT
    askLoaderImpl.java:12)
    at oracle.iam.scheduler.impl.quartz.QuartzJob.execute(QuartzJob.java:146
    at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.j
    ava:529)
    Following is the code of the custom scheduler:
    package oracle.iam.sample.scheduledtask;
    import java.util.HashMap;
    import oracle.iam.scheduler.vo.TaskSupport;
    public class SampleScheduledTask extends TaskSupport {
    public void execute(HashMap hashMap) throws Exception {
    // Display a message when this scheduled task is run
    System.out.println("Running the OIM Sample Scheduled Task...");
    public HashMap getAttributes() {
    return null;
    public void setAttributes() {
    kindly suggest......
    Regards,
    KK
    Edited by: 958122 on Jan 12, 2013 11:38 PM

    Hi,
    Please use the below commands to register the plugin:
    set the environment variable ORACLE_HOME, OIM_ORACLE_HOME, ANT_HOME,JAVA_HOME,MW_HOME and execute
    $ORACLE_HOME/server/plugin_utility/ant -f pluginregistration.xml register
    and provide the necessary input.
    $ORACLE_HOME/server/bin/PurgeCache.sh All
    and provide the necessary input
    Restart the OIM managed server
    http://docs.oracle.com/cd/E21764_01/doc.1111/e14309/plugins.htm#CHDHECGH
    Regards,
    Sunny

  • Assistance required for deploying a validation handler in OIM 11g

    Hi All,
    I wanted to deploy a validation handler in OIM 11g so that I can check that the telephone number that is entered by the user has length of ten and all of them are digits.
    I created a new eclipse workspace called TelephoneValidationHandler on the OIM Host machine. I created a new Java project in the workspace with the name TelephoneValidationHandler. I created a class called TelephoneValidationHandler in this project. Put in the following code in this java file -
    /* TelephoneValidationHandler.java */
    package com.custom;
    import java.io.Serializable;
    import java.util.HashMap;
    import oracle.iam.platform.kernel.ValidationException;
    import oracle.iam.platform.kernel.ValidationFailedException;
    import oracle.iam.platform.kernel.spi.ValidationHandler;
    import oracle.iam.platform.kernel.vo.BulkOrchestration;
    import oracle.iam.platform.kernel.vo.Orchestration;
    public class TelephoneValidationHandler implements ValidationHandler{
              @Override
              public void initialize(HashMap<String, String> arg0) {
              // TODO initialization
              System.out.println("***********************************************************************************");
              System.out.println("************************** Init validate event handler ****************************");
              System.out.println("***********************************************************************************");
              @Override
              public void validate(long processId, long eventId, Orchestration orchestration)
              throws ValidationException, ValidationFailedException {
              System.out.println("************************** Beginning of validation *************************");
              HashMap<String, Serializable> parameters = orchestration.getParameters();
              String telephone = (String) parameters.get("Telephone Number");     
              //String regex="[0-9]{10}";
                   if (telephone.length()==10)
                        for(int i=0; i<10; i++)
                             if (Character.isDigit(telephone.charAt(i))){
                                  continue;
                             else
                                  throw new ValidationFailedException();
                        System.out.println("****************** Validated *********************");
              else
                   System.out.println("*************EXCEPTION OCCURRED*******************");
              throw new ValidationFailedException();
              System.out.println("************************** End of validation *************************");
              @Override
              public void validate(long processId, long eventId, BulkOrchestration arg2)
                        throws ValidationException, ValidationFailedException {
              // TODO - N/A
                   System.out.println("************************** INSIDE BULK VALIDATE ***************************");
    I included the files in reference libraries as - right click on the project, click on Build Path -> Configure Build Path -> Add External JARs. In this I selected the jars that were needed to compile the code successfully and i selected them from the place where they exist in the OIM host for eg. C:\Oracle\Middleware\server\platform\iam-platform-kernel.jar path for iam-platform-kernel.jar.
    Now i created a jar file out of this compiled project by right clicking on the project name and clicking Export -> Java -> JAR File. Selected the .classpath and .project files to export as well. Selected first option 1. Export generated class files and resources option. Other three existing options apart from this one which i selected were: 2. Export all output folders for checked projects. 3. Export Java source files and resources 4. Export refactorings for checked projects. So with the 1st option selected, I clicked next and then selected Generate New Manifest file in the final screen and clicked on Finish. Exported this by the name TelephoneValidationHandler.jar to desktop. If I open this jar by changing extension to zip, I see the following folder structure inside it :
    com -> custom -> TelephoneValidationHandler.class
    META-INF -> MANIFEST.INF
    .classpath
    .project
    I created a folder called lib and placed this jar file inside this lib folder. Then outside this lib folder, i placed the plugin.xml file created for this as follows:
    plugin.xml ->
    <?xml version="1.0" encoding="UTF-8"?>
    <oimplugins xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <plugins pluginpoint="oracle.iam.platform.kernel.spi.ValidationHandler">
    <plugin class="com.custom.TelephoneValidationHandler" version="1.0" name="TelephoneValidationHandler">
    </plugin>
    </plugins>
    </oimplugins>
    Now I selected the lib folder and plugin.xml and created a new zip file by the name TelephoneValidationHandler.zip which will be used for plugin registration. The zip folder directly inside it has the structure - plugin.xml file and lib folder having the jar file inside it.
    lib -> TelephoneValidationHandler.jar
    plugin.xml
    Now I went to the directory C:\Oracle\Middleware\server\plugin_utility and opened the ant.properties file in that and put in the values as:
    ant.properties ->
    # The installation directory for WLS
    wls.home=C:\\Oracle\\Middleware\\wlserver_10.3
    # The home directory for OIM. In case of shiphome its same as install directory
    oim.home=C:\\Oracle\\Middleware\\Oracle_IDM1\\server
    #login file name with path.
    login.config=C:\\Oracle\\Middleware\\Oracle_IDM1\\server\\config\\authwl.conf
    Now I opened a cmd prompt, traversed to C:\Oracle\Middleware\server\plugin_utility directory and typed in "ant -f pluginregistration.xml register" and executed this command.
    It asked for oim userid - xelsysadm, oim password: Password, server url: t3://oimhost:14000, name of plugin file with path: C:\\temp\\TelephoneValidationHandler.zip
    I got these errors in the redirector.out file in C:\Oracle\Middleware\server\plugin_utility :
    Error in registering the plugin. null
    Error occured during the use of plugin registering utility.
    And this is the detailed description in the redirector.err in C:\Oracle\Middleware\server\plugin_utility :
    Jul 17, 2012 6:05:58 PM PluginUtility main
    SEVERE: Exception occured {0}
    java.lang.NullPointerException
         at java.util.regex.Matcher.getTextLength(Matcher.java:1140)
         at java.util.regex.Matcher.reset(Matcher.java:291)
         at java.util.regex.Matcher.<init>(Matcher.java:211)
         at java.util.regex.Pattern.matcher(Pattern.java:888)
         at weblogic.utils.classloaders.FilteringClassLoader.matchesClassFilterList(FilteringClassLoader.java:213)
         at weblogic.utils.classloaders.FilteringClassLoader.findClass(FilteringClassLoader.java:97)
         at weblogic.utils.classloaders.FilteringClassLoader.loadClass(FilteringClassLoader.java:86)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:294)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:294)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:246)
         at oracle.iam.platform.pluginframework.PluginReader.validateInstance(PluginReader.java:303)
         at oracle.iam.platform.pluginframework.PluginReader.validatePluginsFromFile(PluginReader.java:363)
         at oracle.iam.platform.pluginframework.PluginReader.readPluginsFromZIP(PluginReader.java:147)
         at oracle.iam.platform.pluginframework.PluginReader.readPlugins(PluginReader.java:66)
         at oracle.iam.platform.pluginframework.PluginManagerImpl.registerPlugin(PluginManagerImpl.java:74)
         at oracle.iam.platformservice.impl.PlatformServiceImpl.registerPlugin(PlatformServiceImpl.java:129)
         at oracle.iam.platformservice.api.PlatformServiceEJB.registerPluginx(Unknown Source)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
         at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
         at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at com.bea.core.repackaged.springframework.jee.spi.MethodInvocationVisitorImpl.visit(MethodInvocationVisitorImpl.java:37)
         at weblogic.ejb.container.injection.EnvironmentInterceptorCallbackImpl.callback(EnvironmentInterceptorCallbackImpl.java:54)
         at com.bea.core.repackaged.springframework.jee.spi.EnvironmentInterceptor.invoke(EnvironmentInterceptor.java:50)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
         at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
         at $Proxy528.registerPluginx(Unknown Source)
         at oracle.iam.platformservice.api.PlatformService_ott20t_PlatformServiceRemoteImpl.__WL_invoke(Unknown Source)
         at weblogic.ejb.container.internal.SessionRemoteMethodInvoker.invoke(SessionRemoteMethodInvoker.java:40)
         at oracle.iam.platformservice.api.PlatformService_ott20t_PlatformServiceRemoteImpl.registerPluginx(Unknown Source)
         at oracle.iam.platformservice.api.PlatformService_ott20t_PlatformServiceRemoteImpl_WLSkel.invoke(Unknown Source)
         at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:667)
         at weblogic.rmi.cluster.ClusterableServerRef.invoke(ClusterableServerRef.java:230)
         at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:522)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:146)
         at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:518)
         at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    Jul 17, 2012 6:05:58 PM PluginUtility main
    SEVERE: Exception occured {0}
    java.lang.NullPointerException
         at java.util.regex.Matcher.getTextLength(Matcher.java:1140)
         at java.util.regex.Matcher.reset(Matcher.java:291)
         at java.util.regex.Matcher.<init>(Matcher.java:211)
         at java.util.regex.Pattern.matcher(Pattern.java:888)
         at weblogic.utils.classloaders.FilteringClassLoader.matchesClassFilterList(FilteringClassLoader.java:213)
         at weblogic.utils.classloaders.FilteringClassLoader.findClass(FilteringClassLoader.java:97)
         at weblogic.utils.classloaders.FilteringClassLoader.loadClass(FilteringClassLoader.java:86)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:294)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:294)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:246)
         at oracle.iam.platform.pluginframework.PluginReader.validateInstance(PluginReader.java:303)
         at oracle.iam.platform.pluginframework.PluginReader.validatePluginsFromFile(PluginReader.java:363)
         at oracle.iam.platform.pluginframework.PluginReader.readPluginsFromZIP(PluginReader.java:147)
         at oracle.iam.platform.pluginframework.PluginReader.readPlugins(PluginReader.java:66)
         at oracle.iam.platform.pluginframework.PluginManagerImpl.registerPlugin(PluginManagerImpl.java:74)
         at oracle.iam.platformservice.impl.PlatformServiceImpl.registerPlugin(PlatformServiceImpl.java:129)
         at oracle.iam.platformservice.api.PlatformServiceEJB.registerPluginx(Unknown Source)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
         at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
         at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at com.bea.core.repackaged.springframework.jee.spi.MethodInvocationVisitorImpl.visit(MethodInvocationVisitorImpl.java:37)
         at weblogic.ejb.container.injection.EnvironmentInterceptorCallbackImpl.callback(EnvironmentInterceptorCallbackImpl.java:54)
         at com.bea.core.repackaged.springframework.jee.spi.EnvironmentInterceptor.invoke(EnvironmentInterceptor.java:50)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
         at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
         at $Proxy528.registerPluginx(Unknown Source)
         at oracle.iam.platformservice.api.PlatformService_ott20t_PlatformServiceRemoteImpl.__WL_invoke(Unknown Source)
         at weblogic.ejb.container.internal.SessionRemoteMethodInvoker.invoke(SessionRemoteMethodInvoker.java:40)
         at oracle.iam.platformservice.api.PlatformService_ott20t_PlatformServiceRemoteImpl.registerPluginx(Unknown Source)
         at oracle.iam.platformservice.api.PlatformService_ott20t_PlatformServiceRemoteImpl_WLSkel.invoke(Unknown Source)
         at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:667)
         at weblogic.rmi.cluster.ClusterableServerRef.invoke(ClusterableServerRef.java:230)
         at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:522)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:146)
         at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:518)
         at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    Exception in thread "Main Thread" java.lang.NullPointerException
         at java.util.regex.Matcher.getTextLength(Matcher.java:1140)
         at java.util.regex.Matcher.reset(Matcher.java:291)
         at java.util.regex.Matcher.<init>(Matcher.java:211)
         at java.util.regex.Pattern.matcher(Pattern.java:888)
         at weblogic.utils.classloaders.FilteringClassLoader.matchesClassFilterList(FilteringClassLoader.java:213)
         at weblogic.utils.classloaders.FilteringClassLoader.findClass(FilteringClassLoader.java:97)
         at weblogic.utils.classloaders.FilteringClassLoader.loadClass(FilteringClassLoader.java:86)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:294)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:294)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:246)
         at oracle.iam.platform.pluginframework.PluginReader.validateInstance(PluginReader.java:303)
         at oracle.iam.platform.pluginframework.PluginReader.validatePluginsFromFile(PluginReader.java:363)
         at oracle.iam.platform.pluginframework.PluginReader.readPluginsFromZIP(PluginReader.java:147)
         at oracle.iam.platform.pluginframework.PluginReader.readPlugins(PluginReader.java:66)
         at oracle.iam.platform.pluginframework.PluginManagerImpl.registerPlugin(PluginManagerImpl.java:74)
         at oracle.iam.platformservice.impl.PlatformServiceImpl.registerPlugin(PlatformServiceImpl.java:129)
         at oracle.iam.platformservice.api.PlatformServiceEJB.registerPluginx(Unknown Source)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
         at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
         at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at com.bea.core.repackaged.springframework.jee.spi.MethodInvocationVisitorImpl.visit(MethodInvocationVisitorImpl.java:37)
         at weblogic.ejb.container.injection.EnvironmentInterceptorCallbackImpl.callback(EnvironmentInterceptorCallbackImpl.java:54)
         at com.bea.core.repackaged.springframework.jee.spi.EnvironmentInterceptor.invoke(EnvironmentInterceptor.java:50)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
         at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
         at $Proxy528.registerPluginx(Unknown Source)
         at oracle.iam.platformservice.api.PlatformService_ott20t_PlatformServiceRemoteImpl.__WL_invoke(Unknown Source)
         at weblogic.ejb.container.internal.SessionRemoteMethodInvoker.invoke(SessionRemoteMethodInvoker.java:40)
         at oracle.iam.platformservice.api.PlatformService_ott20t_PlatformServiceRemoteImpl.registerPluginx(Unknown Source)
         at oracle.iam.platformservice.api.PlatformService_ott20t_PlatformServiceRemoteImpl_WLSkel.invoke(Unknown Source)
         at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:667)
         at weblogic.rmi.cluster.ClusterableServerRef.invoke(ClusterableServerRef.java:230)
         at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:522)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:146)
         at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:518)
         at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    But in the end of this run it still does show - BUILD SUCCESSFUL message but it obviously doesn't work properly because after this registration is done, I go to the MDS through command prompt and import the new EventHandlers.xml which I create as shown below:
    EventHandlers.xml ->
    <?xml version='1.0' encoding='UTF-8'?>
    <eventhandlers xmlns="http://www.oracle.com/schema/oim/platform/kernel" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.oracle.com/schema/oim/platform/kernel orchestration-handlers.xsd">
    <validation-handler class="com.custom.TelephoneValidationHandler" name="TelephoneValidationHandler" entity-type="User" operation="ANY" order="1002" />
    </eventhandlers>
    This import of EventHandlers.xml is done to the path - /metadata/user/custom
    But after all this, whenever I try creating a new user, I don't even get to see the create user page. Instead I get a NullPointer exception thrown at me.
    Can someone please go through these above steps and tell me if there is any particular step I might be doing wrong??? Maybe the ant.properties is not set properly or maybe the ValidationHandler java code is not implemented properly. However as far as I see I think these steps are correct. I have checked with other posts in this category and followed them. However this error still exists. Please help me.
    Thanks,
    $id
    Edited by: $id on Jul 17, 2012 6:36 PM

    Hey You were right. I changed the plugin.xml file so that the plugin xml tag changed to <plugin pluginclass="..." ..> and now when I ran the ant utility to register the plugin, it did not give any errors. Instead I got a message saying Plugin registered successfully. Also then I went to the dev_oim schema and in that the plugins table and checked it. This time the plugin entry was present in the database in this table.
    Now I imported the EventHandlers.xml file using MDS utility as follows:
    Placed the EventHandlers.xml file in C:/temp/metadata/user/custom/EventHandlers.xml
    The EventHandlers.xml file is as mentioned earlier as follows:
    <?xml version='1.0' encoding='UTF-8'?>
    <eventhandlers xmlns="http://www.oracle.com/schema/oim/platform/kernel" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.oracle.com/schema/oim/platform/kernel orchestration-handlers.xsd">
    <validation-handler class="com.custom.TelephoneValidationHandler" name="TelephoneValidationHandler" entity-type="User" operation="ANY" order="1002"/>
    </eventhandlers>
    Now I changed the weblogic.properties file under C:/Oracle/Middleware/Oracle_IDM1/server/bin file to have the entry as follows:
    metadata_from_loc=C:\ \tempThen went to the cmd prompt and navigated to this same folder. Then executed the command: weblogicImportMetadata.bat. It asked the user name : weblogic, password: password and then the url: t3://oimhost:7001
    There were no errors after this executed. I only got End of Import Metadata Script as the message.
    I then executed the "PurgeCache all" command while in the same directory.
    And gave the oimusername: xelsysadm, oimpassword: password and the oim server url: t3://oimhost:14000.
    I got the message :
    PurgeCache Login Success...
    Purging the cache categories:[all] is successful
    After this I logged in to the OIM console and tried to create a user and provided proper telephone number in the field. But when i clicked on Save after giving in these details, I got the following error on the OIM console:
    A system error occurred.
    When i go the oim server logs i see the following lines in it whenever I click on save for a new user:
    [2012-07-18T11:15:22.799+05:30] [oim_server1] [NOTIFICATION] [IAM-0080013] [oracle.iam.platform.kernel.impl] [tid: [ACTIVE].ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: xelsysadm] [APP: oim#11.1.1.3.0] Kernel executing default validation with process id, event id, entity and operation 1,796.0.User.CREATE
    [2012-07-18T11:15:23.111+05:30] [oim_server1] [NOTIFICATION] [IAM-3050013] [oracle.iam.identity.usermgmt.impl] [tid: [ACTIVE].ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: xelsysadm][APP: oim#11.1.1.3.0] Searching for users with the specified criteria.
    [2012-07-18T11:15:23.688+05:30] [oim_server1] [WARNING] [IAM-0080002] [oracle.iam.platform.kernel.impl] [tid: [ACTIVE].ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: xelsysadm][APP: oim#11.1.1.3.0] Orchestration validation failed on the event handler - Event handler TelephoneValidationHandler implemented using class/plug-in com.custom.TelephoneValidationHandler could not be loaded.
    [2012-07-18T11:15:23.938+05:30] [oim_server1] [ERROR] [IAM-3050029] [oracle.iam.identity.usermgmt.impl] [tid: [ACTIVE].ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: xelsysadm][APP: oim#11.1.1.3.0] The user cannot be created due to validation errors.[[
    oracle.iam.platform.kernel.ValidationFailedException: Event handler TelephoneValidationHandler implemented using class/plug-in com.custom.TelephoneValidationHandler could not be loaded.
    After this error occurred I logged into the database and queried the database with following queries:
    SELECT * FROM dev_oim.orchprocess ORDER BY ID DESC; -> Got the latest entry of process id for operation CREATE and stage as validation-handler but the status of this entry was FAILED.
    Then executed another query as follows to get the event details for the latest process id i got from above query results:
    select * from dev_oim.orchevents WHERE processid=1797 ORDER BY orchorder;The output of this query was:
    "ID"     "NAME"     "STATUS"     "PROCESSID"     "STAGE"     "ORCHORDER"     "RETRY" "CONTEXTID"     "RESULT"
    "7544"     "CreateUserValidationHandler"     "COMPLETED"     "1797"     "validation-handler"     "1"     "0"     "0"     "(BLOB)"
    "7543"     "TelephoneValidationHandler"     "FAILED"     "1797"     "validation-handler"     "2"     "0"     "0"     "(BLOB)"
    I already have pasted my java code initially above. Please guide me if anything wrong in the code or with the EventHandlers.xml file. After importing, I checked again by exporting the EventHandlers.xml file from the location where I had imported it and it did exist in that path.
    Thanks,
    $id
    Edited by: $id on Jul 18, 2012 11:25 AM
    Edited by: $id on Jul 18, 2012 11:34 AM

  • OIM 11g: Adding a new tag to notification template

    Hi:
    OIM 11g comes with some pre-defined notification templates, like 'Generated Password Template', 'Reset Password Template'.
    You can see those thru the admin console, System Management, Notifications.
    I would like to add a new Tag to one of those notifications, like 'Generated Password'. It currently includes the User Login and Password. I would like to include the User Name to the notification Body.
    Can I do this?? How can I accomplish this??
    I try to edit the template, and in the documentation, they mention the Event Name and Available variables. I don't see this 'Available Variables' to select from when I edit the notification template.
    I am using OIM 11g 11.1.1.5.
    Thank you for your help..

    Modify the OOTB notification Template for including a few extra attributes
    -Identify the template and the event type which you want to modify. For example let’s assume we will modify the OOTB ‘Request Creation’, the corresponding xml for this event type is in the following MDS path:
    \metadata\iam-features-request\notification\RequestCreationEvent.xml
    Note: The path as specified in the OIM11G documentation might be incorrect
    -Modify this xml to point to a custom resolver class as follows:
    <?xml version='1.0' encoding='UTF-8'?>
    <Events xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../notification/metadata/NotificationEvent.xsd">
    <EventType name="RequestCreation">
    <Resolver class="com.iam.notification.CustomNotificationResolver">
    <Param Name="Request" DataType="X2-Entity" EntityName="Request"/>
    </Resolver>
    </EventType>
    </Events>-Import the xml back to the MDS database
    -Create a jar (custom resolver class) and a plugin.xml, bundle them up as a zip and register the plug-in using ‘ant/API’s’ as you want
    -Modify the OOTB notification templates as required
    -Send email to verify if your changes are being reflected
    You can create your own customized templates based on the OOTB one but the ‘Resolver Class’ would not be able to pick up this new template because the only purpose of the resolver class is to override a couple of methods (‘getAvailableData’ & ‘getReplacedData’), so that you can add some extra attributes to be read in your template, but the ‘Template Name’ remains the same as it is hard-coded.
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import oracle.iam.notification.impl.NotificationEventResolver;
    import oracle.iam.notification.vo.NotificationAttribute;
    public class CustomNotificationResolver implements NotificationEventResolver {
         public List<NotificationAttribute> getAvailableData(String eventType, Map<String, Object> params) throws Exception {
              return null;
         public HashMap<String, Object> getReplacedData(String eventType, Map<String, Object> params) throws Exception {
              HashMap<String, Object> resolvedData = new HashMap<String, Object>();
             resolvedData.put("requestId", params.get("RequestId"));
             resolvedData.put("requestType", params.get("RequestType"));
             resolvedData.put("userId", params.get("UserId"));
             resolvedData.put("userName", params.get("Name"));
             resolvedData.put("baseUrl", params.get("BaseURL"));
             resolvedData.put("myCustomField1", "myCustomField1");
             resolvedData.put("myCustomField2", "myCustomField2");
             resolvedData.put("myCustomField3", "myCustomField3");
              return resolvedData;
    }Credits to Sunny for coming up with the solution. Since he seems busy, I took the liberty of posting his solution here.
    HTH,
    BB

  • Request failed in OIM 11g

    After obtaining operational approvals, some of my request get dropped. In the OIM log I see the following error message -
    <Sep 2, 2011 3:57:56 PM PDT> <Warning> <oracle.wsm.agent.handler.wls.WLSPropertyUtils> <BEA-000000> <WLSPropertyUtils:getOperationName(),operation name is null>
    <Sep 2, 2011 3:57:56 PM PDT> <Warning> <oracle.iam.callbacks.common> <IAM-2030081> <[CALLBACKMSG] Inside completion plugin for request 181.>
    <Sep 2, 2011 3:57:56 PM PDT> <Warning> <oracle.iam.callbacks.common> <IAM-2030082> <[CALLBACKMSG] Inside completion plugin for request 181, target tye is Resource and operation is PROVISION.>
    <Sep 2, 2011 3:57:56 PM PDT> <Warning> <oracle.iam.callbacks.common> <IAM-2030082> <[CALLBACKMSG] Inside completion plugin for request 181, target tye is Resource and operation is PROVISION.>
    oracle.iam.platform.kernel.ProcessNotInPrePostStageException: The orchestration event with id ApprovalInitiation is not in pending status.
    at oracle.iam.platform.kernel.impl.OrchestrationEngineImpl.setEventResult(OrchestrationEngineImpl.java:185)
    at oracle.iam.request.impl.ApprovalManager.approvalInstanceComplete(ApprovalManager.java:275)
    at oracle.iam.request.impl.ApprovalPolicyServiceImpl.updateApprovalResult(ApprovalPolicyServiceImpl.java:52)
    at oracle.iam.request.api.ApprovalPolicyServiceEJB.updateApprovalResultx(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.jee.spi.MethodInvocationVisitorImpl.visit(MethodInvocationVisitorImpl.java:37)
    at weblogic.ejb.container.injection.EnvironmentInterceptorCallbackImpl.callback(EnvironmentInterceptorCallbackImpl.java:54)
    at com.bea.core.repackaged.springframework.jee.spi.EnvironmentInterceptor.invoke(EnvironmentInterceptor.java:50)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
    at $Proxy398.updateApprovalResultx(Unknown Source)
    at oracle.iam.request.api.ApprovalPolicyService_1nib43_ApprovalPolicyServiceRemoteImpl.updateApprovalResultx(ApprovalPolicyService_1nib43_ApprovalPolicyServiceRemoteImpl.java:132)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.invoke(RemoteBusinessIntfProxy.java:84)
    at $Proxy178.updateApprovalResultx(Unknown Source)
    at oracle.iam.request.api.ApprovalPolicyServiceDelegate.updateApprovalResult(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at Thor.API.Base.SecurityInvocationHandler$1.run(SecurityInvocationHandler.java:68)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.security.Security.runAs(Security.java:41)
    at Thor.API.Security.LoginHandler.weblogicLoginSession.runAs(weblogicLoginSession.java:52)
    at Thor.API.Base.SecurityInvocationHandler.invoke(SecurityInvocationHandler.java:79)
    at $Proxy397.updateApprovalResult(Unknown Source)
    at oracle.iam.request.workflowcallback.ApprovalCallBack.completed(ApprovalCallBack.java:28)
    at oracle.iam.platform.workflowservice.ws.CallbackServiceImpl.callback(CallbackServiceImpl.java:98)
    at oracle.iam.platform.workflowservice.ws.wls.CallbackService.callback(CallbackService.java:33)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at weblogic.wsee.jaxws.WLSInstanceResolver$WLSInvoker.invoke(WLSInstanceResolver.java:92)
    at weblogic.wsee.jaxws.WLSInstanceResolver$WLSInvoker.invoke(WLSInstanceResolver.java:74)
    at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:151)
    at com.sun.xml.ws.server.sei.EndpointMethodHandlerImpl.invoke(EndpointMethodHandlerImpl.java:265)
    at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:100)
    at weblogic.wsee.jaxws.tubeline.FlowControlTube$FlowControlAwareTube.processRequest(FlowControlTube.java:155)
    at weblogic.wsee.jaxws.tubeline.FlowControlTube$1.run(FlowControlTube.java:94)
    at weblogic.wsee.jaxws.tubeline.FlowControlTube$1.run(FlowControlTube.java:92)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:337)
    at weblogic.wsee.jaxws.tubeline.FlowControlTube.processRequest(FlowControlTube.java:91)
    at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:604)
    at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:563)
    at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:548)
    at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:445)
    at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:373)
    at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:524)
    at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:255)
    at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:140)
    at weblogic.wsee.jaxws.WLSServletAdapter.handle(WLSServletAdapter.java:208)
    at weblogic.wsee.jaxws.HttpServletAdapter$AuthorizedInvoke.run(HttpServletAdapter.java:310)
    at weblogic.wsee.jaxws.HttpServletAdapter.post(HttpServletAdapter.java:223)
    at weblogic.wsee.jaxws.JAXWSServlet.doPost(JAXWSServlet.java:124)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    at weblogic.wsee.jaxws.JAXWSServlet.service(JAXWSServlet.java:79)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:330)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.doIt(WebAppServletContext.java:3684)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3650)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2268)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2174)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1446)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    <Sep 2, 2011 3:57:56 PM PDT> <Warning> <oracle.wsm.agent.handler.wls.WLSPropertyUtils> <BEA-000000> <WLSPropertyUtils:getOperationName(),operation name is null>
    Any pointers?

    Which version of OIM 11G you are using?
    If request is in failed status after operational label approved ->
    Check if any post operation are attached like (Provisioning process or Event handlers), If you will get any
    Exception, then whole process along with request will rollback
    If it happens in occasionally ->
    It could be bug with OIM 11.1.1.5, because I am facing same issue but if I shutdown one managed server
    (Cluster mode) and 2nd is in running mode, then my request is get approved always.

  • OIM 11g: Add process tasks as a result of a Request?

    Is it possible in OIM 11g to have the result of a Request be that 1 or more process tasks are added to an an account's process?
    The out-of-the-box Request framework seems to be very attribute driven (Modify Provisioned Resource, Self Modify Provisioned Resource), and I suppose we could add an attribute to trigger process tasks to be added, however, without going into detail, we'd really just like to be able to add the process task with no process form updates.
    Has anyone attempted anything like this?

    Sure you can.  Create a plugin on the request status:
    <plugin pluginclass="com.custom.eventhandlers.request.RequestCompleted" version="1.0" name="RequestCompleted">
    <metadata name="status">
    <value>Request Completed</value>
    </metadata>
    </plugin>
    In your code, using benEntity.getEntityKey() you can get the "Users-Object Instance For User.Key" value for the instance the request is for.  Then search the user's existing instances of that resource object type (findObjects) and match it to the "Users-Object Instance For User.Key" value from the result set.  Then get the process instance key.  From there you can use this code to get the task details:
    Map taskMap = new HashMap();
    String taskName = map.get(resourceName);
    taskMap.put("Process Definition.Tasks.Task Name",taskName);
    tcResultSet rs =  taskOper.getTaskDetail(processInstanceKey,taskMap);
    long taskKey = rs.getLongValue("Process Definition.Tasks.Key");
    And finally this code to insert the task:
    provIntf.addProcessTaskInstance(taskKey, processInstanceKey);
    And done!
    -Kevin

  • Unregister Event Handler OIM 11g

    Hi
    I have created a event handler and registered the same within OIM 11g. it gets executed as expected after create user (post process). next i changed some of the code within my custom event handler. and registered the plugin after i unregistered the old one. unfortunately i still see the old output in my logs
    i have purged the metadata chache, i have bounced the OIM but no luck..
    Are there any steps / checks i need to follow after i unregister the event handler.. and also plz confirm whether we need to follow all the steps of registration of event handler every time we make changes to the event handler class. uhhh.. its really time consuming when
    thanks
    shiv

    Hi,
    Please make sure you are shipping updated JAR files in plugin.zip and re-register.
    Follow below steps to re-register plugin,
    1.     Unregister plugin using below command
    ant -f pluginregistration.xml unregister
    2.     Prepare plugin.zip with updated JAR file.
    3.     register plugin using below command
    ant -f pluginregistration.xml register
    You do not need to restart OIM server after re-register and need not to import eventhandler.xml unless you change version of plugin.
    Also you can verify registered plugin details in plugin table with following query (Run on OIM DB),
    select * from plugins;
    Thanks,
    Pradeep.

  • USER LOGIN GENERATION USING EVENT HANDLER IN OIM 11G

    Hi
    I am looking to generate user logins in OIM 11g (11.1.1.5) using event handlers. Can anyone guide me with the process and which API need to be used?
    Regards

    You have to write your custom class which implements oracle.iam.identity.usermgmt.api.UserNamePolicy. Then you have to register the plugin which will contain the plugin.xml and class file of your custom code.
    More in this metalink ID 1228035.1

  • OIM 11g Using exportMetaData.sh to export the jar files error

    Env OIM 11g (11.1.1.5.0) with iPlanet Connector installed on Linux 32-bit.
    When running the exportMetaData.sh with the filter for configuration for the Jars files as “*”.
    The error output is:
    /home/oracle/exportData/exportPackage/Jars/JavaTasks/SJSDSProv.jar
    java.io.FileNotFoundException: /home/oracle/exportData/exportPackage/Jars/JavaTasks/SJSDSProv.jar (No such file or directory)
    at java.io.FileOutputStream.open(Native Method)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:131)
    at oracle.iam.OIMMigration.util.OIMMigrationUtility.main(OIMMigrationUtility.java:206)
    java.util.zip.ZipException: ZIP file must have at least one entry
    at java.util.zip.ZipOutputStream.finish(ZipOutputStream.java:304)
    at java.util.zip.DeflaterOutputStream.close(DeflaterOutputStream.java:146)
    at java.util.zip.ZipOutputStream.close(ZipOutputStream.java:321)
    at oracle.iam.OIMMigration.util.OIMMigrationUtility.createZipFile(OIMMigrationUtility.java:429)
    at oracle.iam.OIMMigration.util.OIMMigrationUtility.main(OIMMigrationUtility.java:242)
    Export Package created : /home/oracle/exportData/exportPackage_2012:03:26::11:22:04.zip
    Exiting...
    The config.xml file used is (as provided in the document)
    <?xml version="1.0" encoding="utf-8"?>
    <MigrationDetails operation="Export">
    <entityDetails>
    <EntityType>Jars</EntityType>
    <FilteringCriteria>
    <Attribute>
    <Name>Jar_Type</Name>
    <Filter>*</Filter>
    </Attribute>
    </FilteringCriteria>
    </entityDetails>
    <entityDetails>
    <EntityType>Plugins</EntityType>
    <FilteringCriteria>
    <Attribute>
    <Name>Plugin_Name</Name>
    <Filter>*</Filter>
    </Attribute>
    </FilteringCriteria>
    </entityDetails>
    <entityDetails>
    <EntityType>CustomResourceBundles</EntityType>
    <FilteringCriteria>
    <Attribute>
    <Name>Resource_Type</Name>
    <Filter>*</Filter>
    </Attribute>
    </FilteringCriteria>
    </entityDetails>
    </MigrationDetails>
    The exportMetaData.sh is correctly configured and those directories exist on the system.
    CONTEXT_FACTORY="weblogic.jndi.WLInitialContextFactory"
    PACKAGE_LOCATION=/home/oracle/exportData
    TEMP_LOCATION_TO_EXTRACT=/home/oracle/exportTemp
    CONFIGURATION_FILE=/odrive/oracle/oim11g_MWH/Oracle_IDM1/server/bin/config.xml
    MODE="export"
    Any help to resolve this issue would be much appreciated.
    Regards,
    Shane

    Hi Shane,
    The problem appears to be an issue where the directory created is called "JavaTask" but the jars are trying to be placed into "JavaTasks".
    Note the "s" appended at the end.
    If you manually create the JavaTasks directory then run the tool, it should work.

  • Custom Pre Process Event Handler in OIM 11g for middle initials

    Hi,
    I am trying to congiure a Custom Pre Process Event Handler for generating middle name in OIM 11g and I am following the steps as given in metalink ID: *1262803.1*
    Even after successfully performing all the steps I am not able to get the middle initials in Admin Console when I create a new user.
    1) Directory structure for the application that I have created through JDeveloper.
    CustomApplication/
    |-- CustomApplication.jws
    `-- CustomProject
    |-- CustomProject.jpr
    |-- classes
    | `-- com
    | `-- example
    | `-- custompph
    | `-- CustomPreProcessEventHandler.class
    `-- src
    `-- com
    `-- example
    `-- custompph
    `-- CustomPreProcessEventHandler.java
    2) Directory structure for Plugins directory
    My Plugin.xml :
    <?xml version="1.0" encoding="UTF-8" ?>
    <oimplugins>
    <plugins pluginpoint="oracle.iam.platform.kernel.spi.EventHandler">
    <plugin pluginclass="com.example.custompph.CustomPreProcessEventHandler"
    version="1.0" name="CustomPreProcessEventHandler" />
    </plugins>
    </oimplugins>
    plugin/
    |-- lib
    | `-- com
    | `-- example
    | `-- custompph
    | `-- CustomPreProcessEventHandler.class
    |-- middlename.zip
    `-- plugin.xml
    Copied the middlename.zip in the plugin folder in OIM_HOME and registered it successfully.
    3) Created a EventHandlers file and imported it successfully using importmetadata.
    My EventHandlers.xml:
    <?xml version='1.0' encoding='utf-8'?>
    <eventhandlers>
    <!-- Custom preprocess event handlers -->
    <action-handler
    class="com.example.custompph.CustomPreProcessEventHandler"
    entity-type="User"
    operation="CREATE"
    name="CustomPreProcessEventHandler"
    stage="preprocess"
    order="10"
    sync="TRUE"/>
    </eventhandlers>
    I checked the logs as well but could not find something which can help me to proceed.
    Also please advise is their any mapping that I need to do in *"Design Console"*
    Please advise !!!!!
    Thanks

    My lib file contains the package as mentioned in the metalink.
    Heirarchy in Plugin folder :
    1) plugin.xml
    2) Lib ( lib contains 3 folders : com/example/custompph; And inside custompph is my CustomPreProcessEventHandler.class file)
    You mean to say i should not copy the entire package in lib but only the jar file of the CustomPreProceessEventHandler.class* file.
    If i put only a .jar file in lib i get the following error.
    "Error occured during the use of plugin registering utility. The plugin zip does not contain the definition of plugin class com.example.custompph.CustomPreProcessEventHandler"
    Thanks
    Edited by: 870050 on Jul 4, 2011 4:30 AM

  • OIM 11g PreProcess Handlers

    Hi,
    I am developing a logic for UserID Generation using PreProcess Handlers. I am using the following code snippets for generating UserID.
    ====================================================
    import oracle.iam.identity.usermgmt.api.UserManager;
    import oracle.iam.platform.authz.exception.AccessDeniedException;
    import oracle.iam.platform.entitymgr.vo.SearchCriteria;
    public class CustomUserIDGeneration implements UserNamePolicy {
    public String getUserNameFromPolicy(Map map) {
    //Get FirstName and Last Name of the User Account
    printMap(map);
    FirstName = ((String)map.get("First Name"));
    LastName = ((String)map.get("Last Name"));
    public boolean isUserNameValid(String username, Map map) {
    System.out.println((new StringBuilder()).append("MyCustomUserNameGenerator####isUserNameValid: username=").append(username).toString());
    printMap(map);
    List<String> userLogins = new ArrayList<String>();
    UserManager usrService = oimClient.getService(UserManager.class);
    Set<String> retAttrs = new HashSet<String>();
    retAttrs.add(UserManagerConstants.AttributeName.USER_LOGIN.getId());
    SearchCriteria criteria = new SearchCriteria("User ID", UserID2Search, SearchCriteria.Operator.EQUAL);
    =======================================================================
    While searching for the User ID exists in OIM or not, i am getting the below error.
    oracle.iam.platform.authz.exception.AccessDeniedException: You do not have permission to search the following user attributes: User ID.
    I am logging as "xelsysadm" user in the code.
    If i use OIM 10g "findAllUsers()" API, I am able to generate the USERID and validate against the OIM. But when i am using 11g API's i am not able to complete. Can somebody help me on this.
    Urgent help is highly appreciated.
    Thanks,
    SandeepD
    Edited by: user13476138 on Jul 12, 2011 11:45 AM

    Thank you for your reply. I just need some more clarifications. I need to populate 'User Login', with a generated username. Are you populating this field as well? This field is mandatory in oim 11g. I am unable to change it to be non-mandatory.
    I did change the Default Policy for username, and set it to the plugin I implemented.
    Here the steps I followed:
    1- Created the Java class
    2- Created plugin.xml
    3- Created zip file then registered plugin.
    4- Updated the Default User Name Policy.
    Am I missing any steps??
    Again thank you for all your help...

Maybe you are looking for