问题1:
class.forName是先去找classpath,不过回不回去web-inf呢?似乎不会吧
你如果真想知道,不妨把oracle的数据库驱动放在web-inf下,而不放在classpath里面,然后在程序中class.forName,看看结果就知道了问题2:
我不知道你这样的写法是否正确,我也在学习中。不过这里似乎应该是从
上下文获取Home的对象而不是这个ejb类的对象吧。
一般的写法是:xxxHome home = (xxxHome)PortableRemoteObject.narrow(context.lookup("xxx"),xxxHome.class);而你这句话,我实在是看不太明白,继续讨论吧

解决方案 »

  1.   

    UserTransaction是个接口,没有实例的,所以必须有实现的子类才可以赋值。至于第一个问题,你要看看weblogic的classloader的机制了,不过系统的classpath肯定是首先加载的。
      

  2.   

    是因为weblogic 6.0也有oracle的驱动,但是错误的,你把oracle的驱动class12.zip路径在 startWebLogic.cmd 文件中CLASSPATH 把它放在.\lib\weblogic_sp.jar;.\lib\weblogic.jar 之前,这样就可以先找到oracle自己的路径,而不是weblogic 6.0 封装后的错误的oracle驱动的api
      

  3.   

    UserTransaction 是容器提供的JTA事务处理接口,不能直接的new,必须通过JNDI查找。
      

  4.   

    UserTransaction只是远程接口,只有几个方法在里面声明
    根本没有代码实现
      

  5.   

    主要你开发ejb,有3个文件。
    你只要把远程接口给别人开发客户端就成了,代码别人就看不到,ok?