Hashtable env = new Hashtable();
            env.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
            env.put(Context.PROVIDER_URL, "localhost:1099");
            Context ctx = new InitialContext();

解决方案 »

  1.   

    Up
    或者把JBoss提供的jndi.properties文件(好像是在server不同配置的Deploy目录下都有一个)放到classpath可以搜索到的目录下面。这个文件就是设了楼上写的几个变量。
      

  2.   

    我按zikid说得做了,还是有一下出错信息
    javax.naming.NameNotFoundException: No object bound for java:/DefaultDS
    at com.sun.enterprise.naming.java.javaURLContext.lookup(javaURLContext.java:116)
    at javax.naming.InitialContext.lookup(InitialContext.java:347)
    at test.main(test.java:34)
    Exception in thread "main"
      

  3.   

    一、
    echo   请先设置 JBoss Environment
    echo .
    echo   JBOSS_HOME: %JBOSS_HOME%
    echo .
    echo   JAVA_HOME: %JAVA_HOME%二、classpath环境变量的问题:%jboss_home%\client\jbossall-client.jar;%jboss_home%\client\jnet.jar;%jboss_home%\client\log4j.jar
    三、客户端程序:
            Properties p=new Properties();
            p.setProperty("java.naming.factory.initial",
                "org.jnp.interfaces.NamingContextFactory");
            p.setProperty("java.naming.provider.url",
                "localhost:1099");
             InitialContext jndiContext = new InitialContext(p);
             Object ref  = jndiContext.lookup("***"); //****为你在发布Bean是写的ejb-jar.xml中ejb name的名字
      

  4.   

    现在还是出错,信息如下
    javax.naming.CommunicationException: Can't find SerialContextProvider
    at com.sun.enterprise.naming.SerialContext.getProvider(SerialContext.java:63)
    at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:120)
    at javax.naming.InitialContext.lookup(InitialContext.java:347)
    at test.main(test.java:29)
    Exception in thread "main"
      

  5.   

    我也是初学,我也没有招了.帮你顶一下.对了,老兄要是在jboss下搞过bmp,cmp的例子,记得给我一个....我这两天搞jboss + mysql搞晕头了。
      

  6.   

    mysql 的配置:
    在 jboss \docs\examples\jca\
    下右各种数据库 相关的jdbc 配置文件,稍作修改,然后拷到jboss \server\default\deploy
    下,驱动程序拷到 \server\default\lib 下改动 \server\default\conf\standardjbosscmp-jdbc.xml 文件(将mysql 设置成默认) 
         注释掉原来的2行
        <!--  <datasource>java:/DefaultDS</datasource>
          <datasource-mapping>Hypersonic SQL</datasource-mapping> -->
          新添以下两行
          <datasource>java:/“你已经在配置文件中定义的名字”</datasource>
          <datasource-mapping>mySQL(这个我是岁编写的)</datasource-mapping>这样已经可以用了。
    至于 通过jndi取得datasource,我试过只有在session bean 里可以用,客户端不能直接用我的一点心得,有问题研究旧
      

  7.   

    估计是jboss没有配好,你先按mysun(蛤蟆)配置服务器,然后启动服务,在正常运行的情况下再调试。。
      

  8.   

    JBOSS没有配置好罢了。你要调用DATASOURCE,必须在相应的数据库配置文件下定义,JCA目录下有多种数据库的配置例子,你修改一下JNDI名称为你所调用的DATASOURCE名称,然后设置好你的数据库表,用户名、密码。重启后你就可正常调用你的程序了。另外注意,把你的JDBC驱动程序放到CLASSPATH中哦。然后在RUN。BAT文件中把%CLASSPATH%加入JBOSS_CLASSPATH变量中