Java 客户端应用程序中的EJB远程接口

Java 客户端应用程序中的EJB远程接口,java,ejb-3.0,Java,Ejb 3.0,我从EJB开始,遇到了一个问题: 我受youtube上的这个图坦卡蒙的指引- (用法语写的,但没关系) 所以基本上tut(我也是)所做的就是创建一个EJB项目,创建一个无状态会话Bean(MyBean)和一个远程接口(MyBeanRemote),用一个简单的方法返回一个字符串 他还创建了动态web项目,并在servlet doGet方法中使用以下代码来调用bean方法: Context con = new InitialContext(); Object ob = con.lookup("MyB

我从EJB开始,遇到了一个问题:

我受youtube上的这个图坦卡蒙的指引- (用法语写的,但没关系)

所以基本上tut(我也是)所做的就是创建一个EJB项目,创建一个无状态会话Bean(MyBean)和一个远程接口(MyBeanRemote),用一个简单的方法返回一个字符串

他还创建了动态web项目,并在servlet doGet方法中使用以下代码来调用bean方法:

Context con = new InitialContext();
Object ob = con.lookup("MyBean/remote");

if(ob != null){
    MyBeanRemote bean = (MyBeanRemote) ob;
    // And then prints out the returned value from the method
}

但问题是,我在客户端项目中没有可用的MyBeanRemote接口。他是怎么得到的?(视频5:17)

t如果您是一个基于maven的项目,您可以通过在pom.xml文件中添加一个插件来生成客户端jar,如下所示

    <build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-ejb-plugin</artifactId>

            <configuration>
                <generateClient>true</generateClient>
                <clientIncludes>
                    <clientInclude>**/*Local.class</clientInclude>
                    <clientInclude>**/*Remote.class</clientInclude>
                    <clientInclude>**/*Exception.class</clientInclude>
                </clientIncludes>
            </configuration>
        </plugin>
    </plugins>
</build>

org.apache.maven.plugins
maven ejb插件
真的
**/*本地类
**/*远程类
**/*异常类

t如果您的项目是基于maven的项目,您可以通过向pom.xml文件添加插件来生成客户端jar,如下所示

    <build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-ejb-plugin</artifactId>

            <configuration>
                <generateClient>true</generateClient>
                <clientIncludes>
                    <clientInclude>**/*Local.class</clientInclude>
                    <clientInclude>**/*Remote.class</clientInclude>
                    <clientInclude>**/*Exception.class</clientInclude>
                </clientIncludes>
            </configuration>
        </plugin>
    </plugins>
</build>

org.apache.maven.plugins
maven ejb插件
真的
**/*本地类
**/*远程类
**/*异常类

正如您在2:47分钟看到的,他在服务器中部署了EJB(包括接口)。因此,您无需显式地将其添加到项目中(这就是远程bean的概念)。因此,您只需要知道名称的接口(“MyBean/remote”)即可进行查找。然后容器将解析并找到实现该接口的正确对象

这是一种使用EJB的方法,稍后您可以看到您可以使用本地接口,甚至可以使用无接口视图。也许你在想“远程到什么?”本地到什么。。。到JVM(通常)。您仍然可以对同一JVM中的EJB进行远程调用(因为其他服务器中存在具有EJB的JVM),这比本地/无接口调用的成本更高

然后,这个基本概念通常被用作:依赖项注入,其中只描述接口的对象(加上@EJB注释),容器将找出合适的对象

要了解有关何时选择本地与远程的更多信息,请参阅本文:

正如您在2:47分钟看到的,他在服务器中部署了EJB(包括接口)。因此,您无需显式地将其添加到项目中(这就是远程bean的概念)。因此,您只需要知道名称的接口(“MyBean/remote”)即可进行查找。然后容器将解析并找到实现该接口的正确对象

这是一种使用EJB的方法,稍后您可以看到您可以使用本地接口,甚至可以使用无接口视图。也许你在想“远程到什么?”本地到什么。。。到JVM(通常)。您仍然可以对同一JVM中的EJB进行远程调用(因为其他服务器中存在具有EJB的JVM),这比本地/无接口调用的成本更高

然后,这个基本概念通常被用作:依赖项注入,其中只描述接口的对象(加上@EJB注释),容器将找出合适的对象

要了解有关何时选择本地与远程的更多信息,请参阅本文:

在客户端项目中包含包含接口的jar。是的,我知道了,但视频作者如何引用接口?他没有包括任何JARS。我没有访问教程链接,但我猜EJB和客户端应用程序是EAR的一部分,或者通过单个应用程序进行了说明。在客户端项目中包括包含接口的jar。是的,我知道了,但视频作者如何引用接口?他没有包含任何jarsI没有访问过教程链接的内容,但我猜EJB和客户机应用程序是EAR的一部分,或者通过单个应用程序进行了说明。