Exposing OIM APIs as webservice

Hi,
I wanted to know if i can expose OIM APIs as webservice?
As per my reqmnt, i need to implement forgot password and change password functionality for OIM users from a portal application.
So wanted to know if I can use OIM APIs say getChallengeValuesForSelf , compareChallengeValuesForSelf, changePasswordForSelf and then expose them as webservice?

Can I do this...
Create a WebService using NetBeans Editor...
In it add a web method, which basically is using OIM API say getChallengeValuesForUser to fetch some value and then returning it as output of this web method?
I'll be setting all the system properties required for calling OIM API here itself and also would make the connection to OIM here.
I tried doing so, but getting an exception while I try to deploy the webservice,
com.sun.xml.ws.model.RuntimeModelerException: The web service defined by the class weblogic.wsee.async.AsyncResponseBeanSoap12 does not contain any valid WebMethods.
Kindly suggest.

Similar Messages

  • Custom Webservice Using OIM APIs

    Hi..
    How can we create and publish a custom webservice from OIM APIs??
    OOTB SPML Webservice does not support all my requirements.
    Thanks...

    The OOTB Web services are mostly asynchronous, so its not mostly suitable for our synchronous activity in OIM. like create,update,enable,disable etc
    So in order to develop the webservices...
    first of all list down all the methods which u need to publish.
    Write Java code for each methods..
    after that publish all methods as Webservices (JAX-WS) on Weblogic server where OIM is running.
    After that you can access your custom webservices of OIM.
    Regards,
    J

  • Error while initializing OIM API in 11G

    I am trying to deploy a webservice exposing some of the OIM API's in 11G[11.1.1.5]. I am using the OIMClient API to initialize the API's. The following code works fine when I run with in the eclipse but doesnt work when it is deployed on the weblogic server[10.3.5]. This is a standalone server where no other web app is deployed. Has anyone faced this issue before. Any pointers on this would be helpful. Thnaks in advance.
    System.setProperty("java.security.auth.login.config", "./authwl.conf");
    Hashtable<String, String> env = new Hashtable<String, String>();
                   env.put(OIMClient.JAVA_NAMING_PROVIDER_URL, providerURL);
                   env.put(OIMClient.JAVA_NAMING_FACTORY_INITIAL, OIMClient.WLS_CONTEXT_FACTORY);
                   oimClient = new OIMClient(env);
    oimClient.login(userName, password.toCharArray());
    The exception is :
    java.lang.IllegalArgumentException: No Configuration was registered that can handle the configuration named xellerate
    java.lang.IllegalArgumentException: No Configuration was registered that can handle the configuration named xellerate
    at com.bea.common.security.jdkutils.JAASConfiguration.getAppConfigurationEntry(JAASConfiguration.java:130)
    at javax.security.auth.login.LoginContext.init(LoginContext.java:243)
    at javax.security.auth.login.LoginContext.<init>(LoginContext.java:403)
    at Thor.API.Security.LoginHandler.weblogicLoginHandler.login(weblogicLoginHandler.java:58)
    at oracle.iam.platform.OIMClient.login(OIMClient.java:134)
    at oracle.iam.platform.OIMClient.login(OIMClient.java:129)
    at au.com.suncorp.oim.custom.spml.SuncorpOIMOperations.getInitializedOIMClient(SuncorpOIMOperations.java:113)
    at com.suncorp.test.oim.custom.spml.OIMWebServiceSoapBindingImpl.identitySearchByName(OIMWebServiceSoapBindingImpl.java:41)
    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 org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)
    at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)
    at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)
    at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
    at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
    at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
    at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)
    at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
    at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
    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.ServletStubImpl.execute(ServletStubImpl.java:183)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3717)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    Edited by: vindla on 16-Feb-2012 01:10
    Edited by: vindla on 16-Feb-2012 01:14

    1) please ensure that the war file which you deploy in WLS is pointing to the authwl.conf file on the machine hosting the war.
    2) apart from that make sure you have the following jars added to the calss path or added to the lib folder of the war.
    commons-logging-1.1.1.jar;
    oimclient.jar;
    spring.jar
    try removing extra libraries and jars from the war file. it sometimes give errors.
    i have done exactly the same thing and it works fine.
    rest it looks fine
    ======code snippet====
    System.setProperty("java.security.auth.login.config","/path/authwl.conf");
    System.setProperty("OIM.AppServerType", "weblogic");
    env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
    env.put(Context.PROVIDER_URL, "t3://host:14000/oim");
    try {
    oimClient.login("xelsysadm", "password");
    } catch (LoginException e) {
    e.printStackTrace();
    OIMClient oimClient = new OIMClient(env);

  • BPM 11g: JAVA API and Webservice API

    Who knows BPM 11g: JAVA API and Webservice API?
    Customer want to call BPM 11g between Heterogeneous systems, such .net framework. One way is use webservice API, I think, but where can find it? thank you

    When you create a BPM application in 11g, you're actually creating a SOA composite application with a BPMN component in the composite. From within the BPMN editor, you can specify the interface (parameters) of each start node in the process. If you select a start node, look at the implementation tab, you'll see a properties group that lets you define the interface one property at a time, or by selecting an interface from the catalog.
    By defining these properties you're also defining the shape of the Web Service interface that will automatically be created in the composite. If you switch to the composite view, you'll see your BPMN process with a wire to it from a Web Service that's generated from the interface defined in the BPMN editor. The naming convention is the BPMN process name with ".service" appended. When you deploy the BPMN process, the web service will also be deployed, since it's also part of the composite. From Enterprise Manager (EM) you can test the service and get the WSDL, which could be used by other applications (e.g. .NET) to start and interact with a process instance.
    This is one of the advantages of the 11g architecture. The composite exposes services to consumers/clients. The implementation could have been BPEL, BPMN, a Mediator, Java/EJBs, or any combination working together. To the consumer, it's just a web service.
    In case your next question was about security ... you won't see properties about security in the BPMN editor. You use Web Service Manager to apply security or other constraints to the web service endpoint.

  • Calling OIM API from a remote system

    Hi.
    I have OIM 9031 server installed on a computer HostA. And I have multiple copies of the 3rd party java program installed on HostB, HostC and so on.
    I need to be able to call some OIM API from that custom java program (for example, receive the list of active users from OIM server).
    According to OIM documentation, I can use Remote manager to manage users on non-network awared systems.
    But what if I use Remote manager for calling remote OIM API ? Is that possible?
    Or are there any easier ways to achieve my goal ?

    The installer in the AD sync connector is provided because in addition to having the OIM API client, there is a DLL that needs to be installed and registered to capture the plaintext password. It is not necessary to have an installer, but it might be be a convenience if you are deploying to many machines.
    Here is some code to get you started:
    import Thor.API.tcUtilityFactory;
    import com.thortech.xl.util.config.ConfigurationClient;
    import java.util.Hashtable;
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    public class TcUtilFactory {
    Log log = LogFactory.getLog("OIMCLIENT.UTILITY");
    private tcUtilityFactory factory = null;
    private Hashtable env = null;
    public TcUtilFactory() throws Exception {
    // you can also set these system properties on the command line
    System.setProperty("XL.HomeDir", "/opt/oimclient);
    System.setProperty("java.security.policy", "config/xl.policy");
    System.setProperty("log4j.configuration", "config/log.properties");
    System.setProperty("java.security.auth.login.config", "config/auth.conf");
    ConfigurationClient.ComplexSetting configClient = ConfigurationClient
    .getComplexSettingByPath("Discovery.CoreServer");
    env = configClient.getAllSettings();
    try {
    factory = new tcUtilityFactory(env, "xlsysadm", "xelsysadm");
    } catch (Exception e) {
    // handle exceptions thrown by tcUtilityFactory constructor
    From here you can write whatever methods you need going against tcUtilityFactory. Also note that you will need many of the jars from your lib directory as well as the properly configured xl.config and other files in the config directory that the design console client uses (I usually just copy them from that install). Last you will need to make sure you have the required jars specific to you app server (the ones you need to copy over during the design console install)

  • Enabling a User through OIM API

    Hi I am trying to enable a user through OIM API, However the end date is already passed for that user, I am setting up a new end date through the Program (showm below). However the update user is not working (i am not sure).
    Map usermap = new HashMap();
    usermap.put("Users.User ID", User_id );
    Map grpmap = new HashMap();
    grpmap.put("Groups.Group Name", Group_Name);
    tcResultSet ts = userClient.findUsers(usermap); //find all users
    String existing_end_date = ts.getStringValue("Users.End Date");
    tcResultSet tg = groupClient.findGroups(grpmap); //find requireq group
    long ukey = ts.getLongValue("Users.Key");
    long gkey = tg.getLongValue("Groups.Key"); //find group key
    // ENABLE THE USER
    java.util.Date new_end_date = new java.util.Date(111,1,1);
    Calendar cal = Calendar.getInstance();
    cal.setTime(new_end_date);
    DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
    String Str1 = dateFormat.format(cal.getTime());
    String Str2 = existing_end_date + " 12:00:00";
    System.out.println(User_id+" OLD End Date:" + Str2 + " New End Date: " + Str1);
    Map usermap2 = new HashMap();
    usermap2.put("Users.User ID", User_id );
    usermap2.put("Users.End Date", Str1);
    userClient.updateUser(ts,usermap2);
    userClient.enableUser(ukey);
    I am getting the following error:
    U0000018 OLD End Date:2009-09-30 12:00:00 New End Date: 2011-02-01 12:00:00
    2/12/2010 15:02:53 oracle.j2ee.rmi.RMIMessages EXCEPTION_ORIGINATES_FROM_THE_REMOTE_SERVER
    WARNING: Exception returned by remote server: {0}
    Thor.API.Exceptions.tcAPIException: The user cannot be enabled because the end date is passed.
    Not sure why it is happening. It looks like the Updateuser is not working, or something else?
    Please advise. Thanks in advance.

    Hi Suren,
    thanks for the note.
    I found that as soon as I enable the user, I am getting the followimg messages in the opmn logs:
    INFO,06 Dec 2010 10:55:41,841,[XELLERATE.JAVACLIENT],System Event Handler: Validating Organization for an User.
    INFO,06 Dec 2010 10:55:41,944,[XELLERATE.JAVACLIENT],System Event Handler: Triggering Processes related to User.
    INFO,06 Dec 2010 10:55:42,402,[XELLERATE.JAVACLIENT],System Event Handler: Enabling the User
    INFO,06 Dec 2010 10:55:42,421,[XELLERATE.JAVACLIENT],System Event Handler: Validating Organization for an User.
    INFO,06 Dec 2010 10:55:42,427,[XELLERATE.JAVACLIENT],System Event Handler: Triggering Processes related to User.
    INFO,06 Dec 2010 10:55:42,439,[XELLERATE.JAVACLIENT],System Event Handler: Changing application data based on Organization change.
    INFO,06 Dec 2010 10:55:42,442,[XELLERATE.JAVACLIENT],System Event Handler: Auto-Group Membership Event.
    INFO,06 Dec 2010 10:55:43,715,[XELLERATE.JAVACLIENT],System Event Handler: Evaluating User Policies
    So, the access policies are getting evaluated, triggering provisioning processes.
    What I am planning to do is, to disable the access policies and try to run the Program.
    Because of this issue, my Program is throwing an error (until I looked into the opmn logs, it doesn't make sense).
    6/12/2010 10:55:50 oracle.j2ee.rmi.RMIMessages EXCEPTION_ORIGINATES_FROM_THE_REMOTE_SERVER
    WARNING: Exception returned by remote server: {0}
    Thor.API.Exceptions.tcAPIException: Error occurred enabling Xellerate User instance.
    Regards
    Vijay Chinnasamy

  • OIM API portablity issue  with OIM 9.1 / Weblogic 10.3

    Hi , We have a existing piece of code which does some User Mutation through OIM API.
    [I am not well versed with OIM ]
    The code was running fine with Weblogic 8.3 and previous OIM version.
    Here is the piece of code.
    logger.info("Initializing OIM Params from config location:" oimConfigFileUtil.getOIMConfigBase());+*
    +          System.setProperty("XL.HomeDir", oimConfigFileUtil.getOIMConfigBase().getAbsolutePath());+
    +          System.setProperty("java.security.auth.login.config", oimConfigFileUtil.getOIMAuthWLFile().getAbsolutePath());+
    +          ConfigurationClient.ComplexSetting configClient = ConfigurationClient.getComplexSettingByPath("Discovery.CoreServer");+
    +          env = configClient.getAllSettings();+
    *+          try {+*
    +               oimAccessFactory = new tcUtilityFactory(env, oimConfigFileUtil.getUserID(), oimConfigFileUtil.getPassword());+
    I traced all the dependecy's for this piece of code.
    If I run this with Weblogic.jar[8.1] it gives me
    java.io.InvalidClassException: com.thortech.xl.dataaccess.tcDataSet; local class incompatible: stream classdesc serialVersionUID = -5446056666465114187, local class serialVersionUID = -8857647322544023100*
    With the compatablity issue I substituted with weblogic.jar:10.3 , now its giving me all classpath issues.
    Can someone layout the exact jars that are required for this to work?
    Thanks
    Vignesh

    Installl a Design Console. Copy any files that are required. Then take the class paths that are listed in the classpath and basecp files and put those into your application classpath files.
    -Kevin

  • Raising Request using OIM ApI's in oim 11g R2

    Hi all
    I trying to raise a request using OIM API in R2. I have written a sample code and it is throwing me the below error....
    Exception in thread "main" java.lang.NullPointerException
    *     at oracle.iam.ui.custom.updateuser.<init>(updateuser.java:76)*
    *     at oracle.iam.ui.custom.updateuser.main(updateuser.java:118)*
    Please take a look at my code....
    RequestEntityAttribute rea = null;
    rea.setName("Modify User Profile");//This is the place where i am getting the error...
    System.out.println("I am Here3");
    rea.setAction(RequestEntityAttribute.ACTION.Modify);
    List<RequestEntityAttribute> lrea = new ArrayList<RequestEntityAttribute>();
    lrea.add(rea);
    RequestEntity re = null;
    re.setEntityData(lrea);
    List<RequestEntity> reqentity = new ArrayList<RequestEntity>();
    reqentity.add(re);
    RequestData requestData = null;
    requestData.setJustification("I need this Role");
    requestData.setTargetEntities(reqentity);
    String str = null;
    try {
    str = _service.submitRequest(requestData);
    } catch (InvalidRequestException e) {
    } catch (InvalidRequestDataException e) {
    } catch (RequestServiceException e) {
    } catch (BulkBeneficiariesAddException e) {
    } catch (BulkEntitiesAddException e) {
    Thanks in Advance

    look at below link
    Creating a Request via OIM 11g API
    http://www.pathmaker-group.com/querying-oracle-iam-requests/

  • Exposing business services as webservices

    Hi All,
    Im new to webservices.I have a running java web application.
    I need to expose some methods as webservices.
    Can it be possible to create a single ear file,using which i can access webapplication and webservice wsdl file and how
    Regards,
    Bhuvan.

    Yes, you can mix different type of J2EE artifacts in a single application. The easiest way to do this may be to use JDeveloper 10g (or the 11g Tech Preview) and to build you web service application, then add the remaining of you web application into the same project.
    Hope it helps,
    -Eric

  • Need help on OIM API's

    Hi All,
    Do we have any OIM API to validate the challenge questions and challenge responses specifically?
    I was trying to do reset password functionality using OIM API resetForgottenPassword(). But, for the first time it was resetting the password perfectly then onwards from 2nd time... it is giving an error message as mentioned below.
    ERROR,13 Apr 2010 06:16:55,982,[XELLERATE.SERVER],Class/Method: tcUSR/changePasswordForSelf Error :User password cannot be changed.
    ERROR,13 Apr 2010 06:16:55,984,[XELLERATE.SERVER],Class/Method: tcUnauthenticatedOperationsBean/resetForgottenPassword encounter some problems: Error occurred while resetting the password.
    ERROR,13 Apr 2010 06:16:55,984,[XELLERATE.SERVER],Class/Method: tcUnauthenticatedOperationsBean/resetForgottenPassword encounter some problems: Error occurred while resetting the password.
    Thor.API.Exceptions.tcAPIException: Error occurred while resetting the password.
    at com.thortech.xl.ejb.beansimpl.tcUnauthenticatedOperationsBean.resetForgottenPassword(Unknown Source)
    at com.thortech.xl.ejb.beans.tcUnauthenticatedOperationsSession.resetForgottenPassword(Unknown Source)
    at com.thortech.xl.ejb.beans.tcUnauthenticatedOperationsSession_j7uqe_EOImpl.resetForgottenPassword(tcUnauthenticatedOperationsSession_j7uqe_EOImpl.java:77)
    at com.thortech.xl.ejb.beans.tcUnauthenticatedOperationsSession_j7uqe_EOImpl_WLSkel.invoke(Unknown Source)
    at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:174)
    Can anybody please help me on thing. Or else please suggest any workaround for this.
    Thanks in Advance.
    Siva Pokuri.

    Try fetching the challengequestions based on the user key. Try the following code snippet if it works.
    public HashMap getChallengeQuestions(final String userId) {
              tcUserOperationsIntf userObj;
              final HashMap responseMap = new HashMap();
              final HashMap questionAnswersMap = new HashMap();
              ArrayList list = null;
              try {
              final tcUtilityFactory utilFact = AppContext.getUtilityFactory();
                   userObj = (tcUserOperationsIntf) utilFact
                             .getUtility("Thor.API.Operations.tcUserOperationsIntf");
                   final HashMap map = new HashMap();
                   map.put("Users.User ID", userId);
                   final tcResultSet usrRS = userObj.findUsers(map);
                   long userKey = -1;
                   if (usrRS.getRowCount() > 0) {
         userKey = usrRS.getLongValue("Users.Key");
                             return map;
                   final tcResultSet rs = userObj.getChallengeValuesForUser(userKey);
                   final int rowCount = rs.getRowCount();
                   if (rowCount > 0) {
                        list = new ArrayList();
                   for (int i = 0; i < rowCount; i++) {
                        rs.goToRow(i);
                        final String question = rs.getStringValue("Users.Password Challenge Question.Question");
                        final String answer = rs.getStringValue("Users.Password Challenge Question.Answer");
    //try validating here with custom logic
                        list.add(question);
                        questionAnswersMap.put(question, answer);
    }

  • External Calls to OIM API

    I am using OIM 9.1.0.1 as a standalone system.
    i want to call OIM API to create user.
    I have a created a custom JSP page.
    How can i call OIM API to create user in OIM.
    Thanks.

    {color:#000080}You can use the following to invokel OIM APIs from external WebApps:
    {color} private static tcUtilityFactory _util = null;
    static {
    ConfigurationClient.ComplexSetting config = ConfigurationClient
    .getComplexSettingByPath("Discovery.CoreServer");
    try {
    final Hashtable env = config.getAllSettings();
    _util = new tcUtilityFactory(env, "xelsysadm", &lt;pwd&gt;);
    } catch (Exception e) {
    e.printStackTrace();
    public Object getObjectReference(String qualifiedObjectName) {       
    return util == null ? null : (tcUtilityOperationsIntf) util
    .getUtility(qualifiedObjectName);
    {color:#000080}Create an instance of the above class and invoke 'getObjectReference(...)'{color}
    E.g.:
    tcUserOperationsInft _usrOpRef = (tcUserOperationsIntf) )new &lt;ClassName&gt;().getObjectReference("Thor.API.Operations.tcUserOperationsIntf");and then invoke any of the methods from user API class
    {color:#000080}Hope this helps{color}
    Now for creating user, all you have to do is:

  • How to create a Connection to UDB Database through OIM APIs.?

    Hi,
    In our OIM (9.1.0.2) implementation, there is a need to connect to a UDB database to execute some select queries and get the data. Is there any way in which I can do this?
    I tried creating an ITResource to have all static database related information, but I was not able to use that ITResource and create an actual database connection in the java code.
    As far as possible, I don't want to use any JDBC code to create the connection but want to know if there are any inbuilt OIM APIs which can help me in creating a database connection to point to the UDB database.
    (We don't have the DBUM connector deployed.)
    Please get back with your views/info on this.
    Thanks,
    Kulesh...

    Here is a constructor code for connecting to a database:
         public DatabaseConnection(String hostname, String port, String driver, String sid, String admin, String password) throws ClassNotFoundException, SQLException{
              log.info(CLASS_NAME + " -----> inputs=hostname[" + hostname +
                        "]port[" + port +
                        "]driver[" + driver +
                        "]sid[" + sid +
                        "]admin[" + admin +
                        "]password[********]");
              Properties connectionProps=new Properties();
         connectionProps.setProperty("user", admin);
         connectionProps.setProperty("password", password);     
         String url = "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=" + hostname +
              ")(PORT=" + port +
              "))(CONNECT_DATA=(SID=" + sid + ")))";
         Class.forName(driver);
              con = null;     
         con = DriverManager.getConnection(url, connectionProps);
    If you want to use SSL, you will want to configure tcps for jdbc connection to the database, or any other form of connection and update your URL string for it.
    -Kevin

  • Creating self registration request using OIM API

    Hi guys,
    When we try to create a self regisrtation request using OIM API , we ge the following exception:
    We get this error when we set the following in Design console.
    Does user have to provide challenge information during registration = FALSE
    and passed an blank object in place of challenge question parameter in createSelfRegistrationRequest method in tcUtilityBaseClass.
    19:22:17,218 ERROR [REQUESTS] Error: Failed to save REQ_CONSOLIDATED_DATA_VALUE
    data for Create Entity.
    java.lang.NullPointerException
    at org.apache.xml.serializer.TreeWalker.dispatachChars(TreeWalker.java:2
    44)
    at org.apache.xml.serializer.TreeWalker.startNode(TreeWalker.java:414)
    at org.apache.xml.serializer.TreeWalker.traverse(TreeWalker.java:143)
    at org.apache.xalan.transformer.TransformerIdentityImpl.transform(Transf
    ormerIdentityImpl.java:389)
    at com.thortech.xl.dataobj.util.RequestDataConsolidator.convertNodeToXML
    (Unknown Source)
    at com.thortech.xl.dataobj.util.RequestDataConsolidator.addUser(Unknown
    Source)
    at com.thortech.xl.dataobj.tcDataBase.createRequestForCreateEntity(Unkno
    wn Source)
    at com.thortech.xl.dataobj.tcDataBase.createRegistrationRequest(Unknown
    Source)
    at com.thortech.xl.dataobj.tcDataBase.createRegistrationRequest(Unknown
    Source)
    at com.thortech.xl.ejb.beansimpl.tcUnauthenticatedOperationsBean.createR
    egistrationRequest(Unknown Source)
    at com.thortech.xl.ejb.beans.tcUnauthenticatedOperationsSession.createRe
    gistrationRequest(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
    java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
    sorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.jboss.invocation.Invocation.performCall(Invocation.java:359)
    at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(S
    tatelessSessionContainer.java:237)
    at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invo
    ke(CachedConnectionInterceptor.java:158)
    at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(Stat
    elessSessionInstanceInterceptor.java:169)
    at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidation
    Interceptor.java:63)
    at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInte
    rceptor.java:121)
    How do we create a self registration request , using OIM API , with and without challenge questions?

    Well try this piece of code. This might be similar to yours but it worked perfectly for me. For you the error might be the attribute names which you are passing, it should be the one dfined in the FormMetaData xml as below.
         import Thor.API.tcUtilityFactory;
         // define you class below
         ConfigurationClient.ComplexSetting config = ConfigurationClient.getComplexSettingByPath("Discovery.CoreServer");
         final Hashtable env = config.getAllSettings();
         Hashtable quesAns = new Hashtable();
         HashMap user = new HashMap();
         user.put("Users.User ID", "SelfTesting");
         user.put("Users.First Name", "SelfTesting");
         user.put("Users.Last Name", "SelfTesting");
         user.put("Users.Email", "[email protected]");
         user.put("Users.Password", "SelfTesting");
         user.put("ConfirmPassword", "SelfTesting");
         tcUtilityFactory.createRegistrationRequest(env, user, quesAns);
    And for the query of challenge QnA, these are the following combinations possible:
    1) Property Does user have to provide challenge information during registration set to TRUE
    - During self-registration from web console, it will show you Challenge Questions section on the right. If you do not select any questions, it will thow you an error there itself.
    - Doing it from API will create no difference(even if you pass a blank HashTable). The request will be created successfully and on completion when the user tries to login, it will ask for Security QnA.
    2) Property Does user have to provide challenge information during registration set to FALSE
    - During self-registration from web console, it doesn't show you Challenge Questions section on the right. The request will be created successfully and on completion when the user tries to login, it will ask for Security QnA.
    - Doing it from API, you will have to pass a blank HashTable as in above code. The request will be created successfully and on completion when the user tries to login, it will ask for Security QnA.
    Hope it works.
    Thanks
    Sunny

  • Api in Webservices

    Hi
    In my work place we are using webservices to submit the report execution .
    But is there any api in webservices to cancel the submitted job in the middle of the execution .
    Can any one please let me know the procedure for that.
    Thanks in Advance
    Have a NIce day

    I'm still having difficulty with this, and any help would be appreciated!
    I am getting this error:
    com.bea.dsp.das.exception.DASException: com.bea.dsp.das.ws.WSClientException: Failed to encode function arguments to SOAPMessage
    I have attached all the relevant files. Here are the key methods in the client code:
    public List<Case> loadByCustomer(String customerId) throws Exception {
    HelperContext helper = getCasesService().getHelperContext();
    DataFactory factory = helper.getDataFactory();
    // create the object
    GetCasesRequest request = (GetCasesRequest) factory.create("http://idexx.com/ccs/casemanagement/api", "GetCasesRequest");
    // don't know why we need this, or if we do, but the examples do this
    SDOUtil.setElementName(request, "http://idexx.com/ccs/casemanagement/api", "GetCasesRequest");
    request.setCustomerId(new BigInteger(customerId));
    return retrieveCases(request);
    public List<Case> retrieveCases(GetCasesRequest request) {
    ArrayList<Case> result = new ArrayList<Case>();
    CasesResponse cases = null;
    try {
    // use the CasesSDO to actually fetch the matching cases
    DASResult<CasesResponse> response = getCasesService().getCases(request);
    if (response.hasNext()) {
    cases = response.next();
    catch (Throwable e) {
    logger.error("failed to retrieve domain values", e);
    // convert the SDOs into business model objects and return
    List<com.idexx.ccs.casemanagement.Case> dbCases = (List<com.idexx.ccs.casemanagement.Case>) cases.getCase();
    for (com.idexx.ccs.casemanagement.Case dbCase : dbCases) {
    Case tmp = new Case(dbCase);
    result.add(tmp);
    return result;
    }

  • Exposing AQ's as Webservices

    Hi,
    Is there a working example to expose AQ's as Webservices.
    Regards
    Deepak

    Yes, you can mix different type of J2EE artifacts in a single application. The easiest way to do this may be to use JDeveloper 10g (or the 11g Tech Preview) and to build you web service application, then add the remaining of you web application into the same project.
    Hope it helps,
    -Eric

Maybe you are looking for