Making PeopleSoft Connector URL work can be an issue sometimes.
So, here is the process you need to follow to make it work:
1. Create a folder C:\TEMPSFT
2. cd\TEMPSFT
3. In this folder copy your peopleSoftUserMgmt.war
4. Create another folder C:\TEMPSFT\META-INF
5. Under this folder C:\TEMPSFT\META-INF, create a file called application.xml
6. Put the following contents:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE application PUBLIC "-//Sun Microsystems, Inc.//DTD J2EE Application 1.2//EN" "http://java.sun.com/j2ee/dtds/application_1_2.dtd">
<application>
<display-name>PeopleSoft UserMgmt Listener</display-name>
<module>
<web>
<web-uri>peopleSoftUserMgmt.war</web-uri>
<context-root>/peopleSoftUserMgmt</context-root>
</web>
</module>
</application>
7. Create another file MANIFEST.MF with the following contents:
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.5.3
Created-By: 1.4.2_17-b06 (Sun Microsystems Inc.)
Assembled-By: XIM Assembler
Assembled-At: 07/01/2008 21:10
Product-Version: 9.1.0
Build-Number: 9.1.0.1849.0
8. Go to C:\TEMPSFT folder and execute the following command:
jar -cvf peopleSoftUserMgmt.ear peopleSoftUserMgmt.war META-INF/
9. Now, deploy (copy) peopleSoftUserMgmt.ear file in your application server. Say for JBOSS:
C:\jboss4.0.3SP1\server\default\deploy
10. Restart your app server.
11. Now your application should be ready to recieve the PSFT xml:
Your url should be:
http://<hostname>:<port>/peopleSoftUserMgmt/do/peopleSoftAction
12. Go to your out of the box connector test folder now and try to change server url and test psft-xel-test.vbs
13. You should see a reconciliation event now in Design Console and trace.txt should show the contents of the xml posted to this listener.
14. Same steps can be applied to Employee Reconciliation.
Friday, October 3, 2008
PeopleSoft Listener Issues
Posted by
Rajnish Bhatia
at
3:48 PM
0
comments
Friday, July 11, 2008
Monitoring OIM Apps / Listeners - Automatic Startups
The code here checks the Peoplesoft listener in OC4J environment that keep crashing unexpectedly in OIM 903 for some reason. The XML messages sent from PeopleSoft gets queued and won't reach OIM. The listener servlet throws the HTTP 500 Internal Server error. So, to restart the listener automatically, we can use the following code. You can set this code to execute at specific intervals to recheck and recycle the app, if in case it is down.
==========================================
PSFTListenerUtility.java
==========================================
import java.io.*;
import java.net.*;
import java.util.HashMap;
import java.util.Iterator;
import java.util.logging.Level;
import java.util.logging.Logger;
import com.thortech.xl.scheduler.tasks.SchedulerBaseTask;
public class PSFTListenerUtility extends SchedulerBaseTask {
private boolean stop;
public PSFTListenerUtility() {
super("PSFTListenerUtility");
stop = false;
}
@Override
public void execute() {
HashMap myMap = new HashMap();
myMap.put("http://idmdev.bhatiacorp.com:7777/peopleSoftUsrHRM/do/peopleSoftAction", "peopleSoftUsrHRM");
myMap.put("http://idmdev.bhatiacorp.com:7777/peopleSoftUsrCRM/do/peopleSoftAction", "peopleSoftUsrCRM");
myMap.put("http://idmdev.bhatiacorp.com:7777/peopleSoftUsrPRT/do/peopleSoftAction", "peopleSoftUsrPRT");
Iterator iterator = myMap.keySet().iterator();
while (iterator.hasNext()) {
Object key = iterator.next();
String temp = key.toString();
try {
URL url = new URL(temp);
boolean isAlive = getURLOutput(url);
if (!isAlive) {
try {
//restart
String applicationName = (String) myMap.get(key);
logger.debug(" --- REBOOTING PEOPLESOFT LISTENER --- ");
logger.debug(" --- LISTENER NAME: " + applicationName +" --- ");
Runtime.getRuntime().exec("/opt/oracle/product/t01idm_app/opmn/bin/opmnctl startproc application="+applicationName);
} catch (IOException ex) {
Logger.getLogger(PSFTListenerUtility.class.getName()).log(Level.SEVERE, null, ex);
}
}
// Object val = myMap.get(URL);
} catch (MalformedURLException ex) {
Logger.getLogger(PSFTListenerUtility.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
public boolean getURLOutput(URL url) {
BufferedReader in = null;
String inputLine;
boolean isAlive = true;
try {
in = new BufferedReader(new InputStreamReader(url.openStream()));
//for 500 Internal Server error, an exception will be caught.
in.close();
} catch (IOException ex) {
isAlive = false;
logger.debug("PEOPLESOFT LISTENER NOT RUNNING!");
Logger.getLogger(PSFTListenerUtility.class.getName()).log(Level.SEVERE, null, ex);
}
return isAlive;
}
@Override
public boolean stop() {
logger.debug("Entering PSFTListenerUtility.stop()");
logger.warn(" ---- Stopping current task ---- ");
stop = true;
logger.debug("Exiting PSFTListenerUtility.stop()");
return stop;
}
}
courtesy:Askar Zaidi
Posted by
Rajnish Bhatia
at
11:34 PM
0
comments