ejb部署:欺骗你眼睛的ide

今天遇到一个很有意思的事情,自己写了个ejb的小应用,在部署的时候遇到了这样一个问题。

  因为ejb是分布式开发环境下的之间开发模型,所以我在一个ejb项目中(其实就是普通的java项目,只是引入了一些jar包用以支持ejb的开发而已)完成了我的逻辑,然后将其部署到了jboss上,通过查看jdni确认部署正常。然后,我自己新建一个web项目,在该web项目的jsp页面上在java脚本代码中通过jdni来查找调用该ejb类,在web项目保存以后,eclipse出现红叉的提示,说是无法解析HelloWord,我一想,HelloWord是ejb类的远程接口类,属于ejb那个项目中定义的,而现在的web项目是另一个项目,其中根本没有定义HelloWord这个接口,所以eclipse无法解析这个接口,当时我想既然出现了红叉,那么编译就有问题,所以自己又在web项目中按照ejb项目中那样重新定义了该HelloWord接口,不报错了,然后把该web项目部署到jboss上,一运行,就出现 $Proxy65 cannot be cast to com.ejb3.HelloWord这样的一个错误,网上关于这个错误的也说的很少,实在看不出有什么问题。

   最后,将web项目中定义的HelloWord接口删掉,重新部署web应用,结果虽然在ecliplse下会出现红叉叉提示无法解析HelloWord,但是部署到jboss后一切运行正常, 所以, 我现在才发现,有时候ide报错,不代表应用就一定有错,特别是在进行分布式环境下的基于组件的开发的时候,这些组件之间是项目作用的,很多情况下在该组件下使用的类是在其它项目中定义的,这样的话就会出现刚才那样的报无法解析类的错误,但是这个时候只要不是java文件报这样的错误,项目一样可以正常部署,ide报错只能算是伪错误,不要一看到这样的错误就认为程序就一定有问题,否则,就会话很多时间,也搞不清有什么错误了。

       

 

你可能感兴趣的:(ejb部署:欺骗你眼睛的ide)