ITPub博客

首页 > 应用开发 > IT综合 > 在Weblogic+JBuilder7使用时的奇怪问题 (转)

在Weblogic+JBuilder7使用时的奇怪问题 (转)

原创 IT综合 作者:amyz 时间:2007-11-13 13:47:24 0 删除 编辑
在Weblogic+JBuilder7使用时的奇怪问题 (转)[@more@]

  一周前,老师让我们用Java去做项目,说句实话,我对Java真的是一知半解,绝对是个门外汉,无奈,老师的任务不能不完成,只好硬着头皮去做。
  我们有一个项目叫“数据仓库”,以前是师兄们做的,采用的是tomcat服务器JSP+JavaBean做开发。后来老师为了“提高项目的技术含量”,决定改做J2EE版本,我们这里几乎没有人用J2EE做过项目,于是大家就开始到处找资料,下载编译器,忙得不亦乐乎。
  最终,大家决定使用ORACLE9i作数据库webLOGIC7+JBuilder7作开发环境,原因很简单Weblogic对J2EE支持的比较好,JBuilder开发环境还不错,对机器要求不是太高(我们的机子比较差,P3-550+256M内存,刚好满足最低要求:),本来以为很简单的配置,很容易就会搞定,但是结果却让人大吃一惊。
  按照培训资料上面说的,一步步装好了Weblogic7,测试console,通过,然后再按照说明把JBuilder7也装上,并按照顺序配置好了,大致流程如下:
  Weblogic和JBuilder7整合后,经过配置,做出的Session Bean是好的,说明配置正确。
  然后测试实体Bean:
  1、设置oracle9i驱动
  在JBuilder7中,Tools-->Enterprise Setup...-->Database driver,点击Add,选择Oracle的位置D:OracleOra91jdbclibclasses12.zip,确定后,驱动在列表中出现,然后重新启动JBuilder
  2、创建工程Demo,然后创建一个EJB Module 取名Hustli,然后导入数据库Schema信息。
  3、输入数据库的连接信息:我采用的是别人的机器上的oracle9,机器名是flyers,SID=daito,具体信息如下:
  Driver: oracle.JDBC.driver.OracleDriver
  URL:  jdbc:oracle:thin:@flyers:1521:daito 
  user=daito password=daito
  JNDI NAME : Datasource
  4、成功后,创建CMP EJB,输入EJB信息,其中interface采用的是remote
  5、配置Weblogic中JDBC Pool和Data Source:
  JDBC Pool:
    Name: Pool
  URL:  jdbc:oracle:thin:@flyers:1521:daito
  Properties: user=daito
  Password: daito
  Initial Capacity: 5
  Maximum Capacity:10
  Test Table Name: hustli(我建的一个表)
  在Targets里面加入myserver,其余采用默认配置。
   
    Data Source:
  Name: DataSource
  JNDI Name:DataSource
  Pool Name:Pool
  在Targets里面加入myserver,其余采用默认配置
    然后重新启动weblogic的设置页面,成功
  6、对EJB打包,deploy成功。
  7、利用JBuilder7自动生成测试程序,改动main函数如下:
    public static void main(String[] args)
  {
  try
  {
  Client client = new Client();

  HustliRemoteHome home=client.getHome();
  HustliRemote r=home.findByPrimaryKey("jjli");
  System.out.println(r.getAge());
  }
  catch (RemoteException ex)
  {
  ex.printStackTrace();
  }
  catch(FinderException e)
  {
  e.printStackTrace();
  }
  }
  结果出现错误,在object ref = ctx.lookup("HustliRemote");(自动生成的)
    错误如下:
    javax.naming.NameNotFoundException: Unable to resolve 'HustliRemote' Resolved: '' Unresolved:'HustliRemote' ; remaining name 'HustliRemote'
  后来这个问题也在各位师兄的机器上出现,毫无例外。
  对于这个问题,大家讨论了半天也没有解决,于是各自分头散去,大家静下心来,把各种信息自信的研究了,发现有一个共同点:在程序编译的时候,有一个警告,大家开始没有注意,后来就都注意到这个问题了,警告大致的意思是:临时文件目录有空格,可能导致致命的错误。
  但是我们发现系统的环境变量里面的确有2各设置:TEMP和TMP,但是在用户变量里面一个、系统变量里面一个,按照我的观点,编译器应该先搜索系统变量里面的,系统变量里面的值是C:WINNTTEMP,这应该没有什么问题,于是我们在C盘建了一个目录,名字叫Temp,并且把用户变量里面的TEMP和TMP的值都设置为C:Temp,然后保存,启动JBuilder7,一切OK!
  这个问题,看来是不是很BT?我很奇怪为什么JBuider会先找用户变量?
 
  如果上面的问题不叫问题,那是我们没有注意警告,下面的问题就太让人郁闷了。
  Weblogic+JBuilder装好了之后,运行了2天,然后为了杀毒,我又装上了几个杀毒软件,开始全盘扫描硬盘,使用LoveGate居然杀到了几个病毒,然后把感染的文件全部删除,重新启动机器,然后做了点别的事情,就把这件事情给忘掉了,等到明天启动JBuilder,不幸的事情发生了,deploy组件的时候,发现报错:无法连接t3:/localhost:7001。
  这岂不是怪事?我的服务器明明开着的,一点异常的表现都没有,然后我关掉JBuilder,用Weblogic控制台打开服务器,运行良好,结果当在地址栏里输入:http://localhost:7001时,居然找不到连接。
  开始我怀疑是weblogic出了问题,然后卸载了weblogic重新安装,问题依旧,最后把weblogic和JBuilder一起卸掉,重新装,问题依然顽固的出现在我面前,究竟是怎么了?难道是杀毒的时候把重要的文件删除了?没有办法,只好重新格式化硬盘,重新装了系统,首先把weblogic装上,运行良好,装上JBuilder,配置完毕,一切都没有任何问题,然后把一系列的软件装上,自然也装了杀毒的KV3000,然后运行JBuilder,那个奇怪的问题又出现了!!!!
  为了解决问题,我决定把安装的软件一个个的卸载,最后发现,如果卸载了KV3000,JBuilder就没有任何问题,否则,只要打开实时监测,就无法运行JBuilder7。
  没有办法,只好把KV3000卸载。个人怀疑是不是KV3000对Java的运行进行监视,然后当作病毒杀掉,当然这只是猜测,如果有那位高手能够指点一二,不胜感激。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752019/viewspace-982223/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    3984
  • 访问量
    7338889