java.util.Hashtable ht = new java.util.Hashtable();
ht.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.cosnaming.CNCtxFactory");
ht.put(javax.naming.Context.PROVIDER_URL, "iiop://localhost:1050");
Context ctx = new InitialContext(ht);
ht.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.cosnaming.CNCtxFactory");
ht.put(javax.naming.Context.PROVIDER_URL, "iiop://localhost:1050");
Context ctx = new InitialContext(ht);
不过并不是我想要的结果,
原因有两个
1.硬编码的方式不灵活;
2.显示的结果不对,我记得以前我看到的结果有很多
包括JMS,jdbc,EJB,还有自定义的都能看到,像一个目录结构一样,
分级的。
2."后来我重装了jdk和j2ee后",重装了就没有了
完全可以测试通过,也没有采用硬编码的方式,可今天重试了一次却不行了,
感觉真的莫名奇妙,谁能帮我测一下上面的程序。还有下面的也帮测一下,谢谢!!!import javax.swing.*;
import javax.swing.tree.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.naming.*;public class JNDIBrowserSort extends JPanel
{
public static void main(String[] args) {
final JFrame window = new JFrame("JNDI Browser");
try {
final JNDIBrowserSort client = new JNDIBrowserSort();
window.addWindowListener(new WindowAdapter() {
public void windowClosing( WindowEvent ev) {
window.dispose();
System.exit(0);
}
});
Container cp = window.getContentPane();
cp.add(client,BorderLayout.CENTER);
window.pack();
window.setVisible(true);
}
catch (Exception ex) {
System.err.println(ex);
window.dispose();
System.exit(1);
}
} public JNDIBrowserSort() {
Context ctx=null;
try {
DefaultMutableTreeNode root = new DefaultMutableTreeNode("JNDI");
ctx = new InitialContext();
addContext (root,ctx);
JTree tree = new JTree(root);
add (new JScrollPane(tree));
}
catch (NamingException ex) {
System.err.println (ex);
System.exit(1);
}
} private static void addContext (DefaultMutableTreeNode node, Context ctx) throws NamingException{
NamingEnumeration list = ctx.listBindings("");
Map sorted = new TreeMap();
while (list.hasMore()) {
Binding item = (Binding)list.next();
sorted.put(item.getName(),item);
System.out.println(item.getName());
}
Iterator keys = sorted.keySet().iterator();
System.out.println("---");
while (keys.hasNext()) {
String name = (String)keys.next();
System.out.println(name);
Binding item = (Binding)sorted.get(name);
DefaultMutableTreeNode child = new DefaultMutableTreeNode(name);
node.add (child);
Object o = item.getObject();
if (o instanceof javax.naming.Context)
addContext (child,(Context)o);
}
}
}
你机子上装有J2ee吗?
有的话能不能帮我测一下?实在是太奇怪了,以前确实是正确的。
-------------------------------------------
我现在也用j2eeadmin建了很多东西,
也有很多EJB/XXX,不过也没显示出来。
文档上没说""做参数是什么意思,呵呵
不好意思,能力不够
没有用j2ee自带那个
高兴极了!!!!不过还是要谢谢ajoke(可乐),谢谢!!!方法:
1.%J2EE_HOME%\bin\setenv;
2.java -classpath .;%CPATH% JNDIList结果:
com.sun.enterprise.distributedtx.UserTransactionImpl - UserTransaction
com.sun.enterprise.jms.ConnectionFactoryWrapperStandalone - QueueConnectionFactory
com.sun.jms.JMSXAQueueConnectionFactoryImpl - JMSXAMyQueFactory
javax.naming.Reference - RemoteLogReader
com.sun.jms.QueueImpl - MyQue
javax.naming.Reference - ServerObject
com.sun.jms.JMSXATopicConnectionFactoryImpl - ContainerXATopicConnectionFactory
com.sun.jms.JMSXAQueueConnectionFactoryImpl - JMSXAQueueConnectionFactory
com.sun.jms.JMSXATopicConnectionFactoryImpl - JMSXAMyTopicFactory
com.sun.enterprise.naming.TransientContext - JMSXAjms
javax.naming.Reference - ServerConfiguration
com.sun.enterprise.jms.ConnectionFactoryWrapperStandalone - MyTopicFactory
javax.naming.Reference - DatabaseInformation
com.sun.enterprise.jms.ConnectionFactoryWrapperStandalone - TopicConnectionFactory
javax.naming.Reference - WebInstaller
javax.naming.Reference - J2EE_UNIQUE_VALUE_GEN
com.sun.enterprise.naming.TransientContext - jdbc
javax.naming.Reference - Realm_Manager
javax.naming.Reference - JarInstaller
com.sun.enterprise.jms.ConnectionFactoryWrapperStandalone - MyQueFactory
com.sun.jms.JMSXAQueueConnectionFactoryImpl - ContainerXAQueueConnectionFactory
com.sun.enterprise.naming.TransientContext - jms
com.sun.jms.TopicImpl - MyTopic
com.sun.jms.JMSXATopicConnectionFactoryImpl - JMSXATopicConnectionFactory
<<21天学通J2EE>>个人认为的确还可以。