Beranda · · · ·

New Clear Putty's Cache By Patricbensen

For all those of you who have been trying to clear Putty’s cache of host fingerprints (Windows) for development or testing, here is the answer:

1. Open the registry (regedit)
2. Go to HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys

There you should see Putty’s cache of host keys.
The ‘name’ column tells you which key is for which server.

For example, it will have the format of <algo>@<port>:<host> [rsa2@22:172.16.117.159]

3. Delete the rows that you need and presto!

That’s all there is to it.

New Print JNDI tree By Patricbensen

At one point or another most of us would have wanted to see what was in the JNDI tree of the Application Server. This may have been because of a javax.naming.NameNotFoundException thrown by the application under development.

After scouring the internet and not finding a way to do this seemingly simple task, I put this together in about an hours time.

import java.util.Hashtable;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NameClassPair;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;

public class JNDITree {
private Context context = null;

public static void main(String[] args) throws Exception {
new JNDITree().printJNDITree("");
System.out.println("DONE");
}

public JNDITree() throws NamingException {
setEnv();
}

/* Please modify this method or comment and use jndi.properties
*/
public void setEnv() throws NamingException {
Hashtable env = new Hashtable();
//OC4J
// env.put(Context.INITIAL_CONTEXT_FACTORY, "com.evermind.server.rmi.RMIInitialContextFactory");
// env.put(Context.PROVIDER_URL, "ormi://172.16.x.x:12404");
// env.put(Context.SECURITY_PRINCIPAL, "admin");
// env.put(Context.SECURITY_CREDENTIALS, "welcome");
//JBOSS
// env.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
// env.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
// env.put(Context.PROVIDER_URL, "jnp://172.16.x.x:1099");
//WEBLOGIC
// env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
// env.put(Context.PROVIDER_URL, "t3://172.16.x.x:7001");


context = new InitialContext(env);
}

public void printJNDITree(String ct) {
try {
printNE(context.list(ct), ct);
} catch (NamingException e) {
//ignore leaf node exception
}
}

private void printNE(NamingEnumeration ne, String parentctx) throws NamingException {
while (ne.hasMoreElements()) {
NameClassPair next = (NameClassPair) ne.nextElement();
printEntry(next);
increaseIndent();
printJNDITree((parentctx.length() == 0) ? next.getName() : parentctx + "/" + next.getName());
decreaseIndent();
}
}

private void printEntry(NameClassPair next) {
System.out.println(printIndent() + "-->" + next);
}


private int indentLevel = 0;

private void increaseIndent() {
indentLevel += 4;
}

private void decreaseIndent() {
indentLevel -= 4;
}

private String printIndent() {
StringBuffer buf = new StringBuffer(indentLevel);
for (int i = 0; i < indentLevel; i++) {
buf.append(" ");
}
return buf.toString();
}



This seemed to have worked very well for me and I thought I'd share it incase any of you have the same need.
In case anyone has a better way of doing this, kindly comment.

P.S. Dont forget to edit the setEnv() method to set the InitialContext. Default values have been given for a few App Servers.
Alternatively, comment the method out and use jndi.properties with values corresponding to your application server.

New OC4JClient - The SCAM By Patricbensen

You'd think that when Oracle packages a jar called oc4jclient.jar, you'd be safe using it within your client (ejb client, jms client) applications with no problems whatsoever.... well, if you did, you'd be ...well...WRONG!
You might also encounter stacktraces like these after deploying your EJB/JMS client:

Exception in thread "main" java.lang.NoClassDefFoundError: com/evermind/server/jms/EvermindXAConnectionFactory
at com.evermind.server.jms.ConnectInfo.getPass(ConnectInfo.java:98)
at com.evermind.server.jms.EvermindQueueConnectionFactory.createQueueConnection(
EvermindQueueConnectionFactory.java:83)


There are a number of things to note before you even try to use the oc4jclient.jar:

  1. Oracle packages the client in a zip file. This file contains the oc4jclient.jar file and al lot of additional supporting libraries that it needs. Just check out the manifest.mf file present in oc4jclient.jar to marvel at the horrendous dependency list.

  2. In addition to the above, you will need to download an additional jar (ojdl.jar) required for the oc4jclient's internal logging purpose!. (How daft can this be!)

  3. You CANNOT distribute the OC4JClient (and its supporting libraries like dms.jar, optic.jar etc) unless you are an Oracle Customer and your client is an Oracle Customer. So be extremely careful while packaging and deploying your application.


  4. The OC4JClient (oc4jclient.jar along with supporting jars) is INADEQUATE if you want to build a client application that uses JMS (not OJMS). For this to work, you'll have to add oc4j.jar (i.e. the entire core runtime of the application server) just to make a standalone JMS client run (How clever is that?!)

The above definitely holds true for Oracle10gAS 10.1.2.02. I believe that with 10.1.3, some of these problems have been alleviated. However.....
The next time you develop an oc4j client application please keep the above points. This will avoid significant pain grief especially when trying to liaise with metalink/oracle tech support.

New Foxit : Adobe Acrobat Reader Replacement By Patricbensen

Fed up of Adobe Acrobat Reader's slow load times? Had enough of the huge download bills you keep paying thanks to its frequent and not so small updates?

Well, then Foxitsoftware.com is the place you want to go to... quickly.

There you'll find Foxit Reader 2.0.
  • Its incredibly small (~1.5MB).
  • Its lightning fast
  • It can annotate
  • Its FREE

The only thing I found it lacking in was the management of digital certificates and trusted identities. However, for the average user of pdf files, Foxit Reader should do very nicely.