Elton's Blog

EJB3入门(3)本地接口

by on 六.16, 2009, under Java

之前用到的都是远程接口,顾名思义,远程接口就是提供不再同一个虚拟机中的两端程序来访问的。适合于分布式部署。但是有的时候客户端和服务端又在一个jvm中,比如在一个tomcat或者jboss的web容器中。这个时候就没有必要用远程接口了,毕竟浪费资源。可以改用local接口。

如果你尝试将上一节中的remote直接替换成local,再执行客户端,你会发现如下错误:

1
Could not find InvokerLocator URL at JNDI address "ShoppingCartBean/local"; looking up local Proxy from Remote JVM?

这说明你试图通过远程的jvm来调用本地的端口,因为客户端执行的这个jvm与ejb容器的jvm是两个不同的虚拟机。所以本地接口调用会失败。

在这里我们再建立一个web工程,创建web工程的时候,可以顺便创建一个EAR工程。

创建web工程

创建web工程

然后在这个web工程中加入对之前shoppingcart项目的引用。注意,这里已经将shoppingcart项目中的接口改为local方式。

修改Build Path

修改Build Path

在Java build path中,点击projects标签,点击add按钮,加入shoppingcart的项目

加入相关项目

加入相关项目

之后,在web项目中新建一个jsp页面,如index.jsp,代码如下:

1
 

之后就可以将EAR项目导出到jboss的部署目录中了。

导出EAR

导出EAR

部署好以后,jboss的输出会提示:

1
19:26:53,132 INFO  [TomcatDeployment] deploy, ctxPath=/EJBWeb

之后就可以在浏览器中输入localhost:8080/EJBWeb来测试本地接口了。





:,

Leave a Reply

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Visit my friends!

A few highly recommended friends...