当前位置: 首页 > 知识库问答 >
问题:

如何只将EJB3的接口导入客户端?

易琨
2023-03-14

我做了一个简单的项目来测试 EJB3 实现。

使用maven我在项目中创建了3个模块,分别是“MyEjb”EJB,“MyWeb”这场战争,“MyWeb2”另一场战争。战争模块是EJB的客户端。

问题是,当我部署EAR时,控制台显示有3个EJB上下文,每个模块创建一个。模块MyEjb的EJB上下文不在wars模块之间共享,每个模块都从自己的MyEjb依赖项中获取数据。

我必须在一个单独的JAR中创建EJB接口?我使用Jboss作为应用服务器。

这是完整的项目:https://github.com/AndreaCatania/EjbTest

控制台在这里:

[0m[0m09:32:18,735 INFO    [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-1) JNDI bindings for session bean named TheNamer in deployment unit deployment "MyEjbs-1.0-SNAPSHOT.jar" are as follows:

    java:global/MyEjbs-1.0-SNAPSHOT/TheNamer!com.andreacatania.test.RemoteNamer
    java:app/MyEjbs-1.0-SNAPSHOT/TheNamer!com.andreacatania.test.RemoteNamer
    java:module/TheNamer!com.andreacatania.test.RemoteNamer
    java:jboss/exported/MyEjbs-1.0-SNAPSHOT/TheNamer!com.andreacatania.test.RemoteNamer
    java:global/MyEjbs-1.0-SNAPSHOT/TheNamer
    java:app/MyEjbs-1.0-SNAPSHOT/TheNamer
    java:module/TheNamer

[0m[0m09:32:19,137 INFO  [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-5) JNDI bindings for session bean named TheNamer in deployment unit deployment "MyWeb.war" are as follows:

    java:global/MyWeb/TheNamer!com.andreacatania.test.RemoteNamer
    java:app/MyWeb/TheNamer!com.andreacatania.test.RemoteNamer
    java:module/TheNamer!com.andreacatania.test.RemoteNamer
    java:jboss/exported/MyWeb/TheNamer!com.andreacatania.test.RemoteNamer
    java:global/MyWeb/TheNamer
    java:app/MyWeb/TheNamer
    java:module/TheNamer

[0m[0m09:32:19,142 INFO  [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-6) JNDI bindings for session bean named TheNamer in deployment unit deployment "MyWeb2.war" are as follows:

    java:global/MyWeb2/TheNamer!com.andreacatania.test.RemoteNamer
    java:app/MyWeb2/TheNamer!com.andreacatania.test.RemoteNamer
    java:module/TheNamer!com.andreacatania.test.RemoteNamer
    java:jboss/exported/MyWeb/TheNamer!com.andreacatania.test.RemoteNamer
    java:global/MyWeb2/TheNamer
    java:app/MyWeb2/TheNamer
    java:module/TheNamer

共有1个答案

赵夕
2023-03-14

您需要过滤掉哪些内容应该进入 ejb-client 模块,哪些内容不应该进入。如果未指定此参数,则客户端 jar 将与普通 jar 完全相同。实现此目的的一种简单方法是将接口放在名为 api 的包中,并在客户端 jar 中包含与此匹配的内容。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-ejb-plugin</artifactId>
    <version>2.3</version>
    <configuration>
         <!--ejbVersion>3.1</ejbVersion-->
         <generateClient>true</generateClient>
         <clientIncludes>
            <clientInclude>**/api/*</clientInclude>
         </clientIncludes>
    </configuration>
</plugin>
 类似资料:
  • 我正在使用Quarkus中的MicroProfile REST客户端,想知道如何对自定义客户端接口进行单元测试? 示例服务: 是否可以编写包含此功能的单元测试?例如。我想测试请求主体是否得到了正确的处理,是否包含了正确的JSON(特别是因为我遇到了JVM和本机映像模式之间行为不同的问题)。 REST服务器资源可以很容易地用REST保证测试,但是我没有发现REST客户机接口有类似的情况。 有什么建议

  • 客户端接入 积分商城是纯H5页面形式的,开发者客户端集成兑吧积分商城的方法是,直接在自己app的webview加载积分商城H5页面。 H5接入 开发者客户端接入,加载积分商城页面时,请务必做到以下几点,以保证积分兑换的用户体验。 保证webview可以自行适应页面:对接联调时需测试商城首页、商品详情页、活动页内容是否适配正常; Android应用下,为了用户兑换优惠券之后可以方便的去使用,请设置W

  • 我一直试图用角色导入预先配置的客户机和服务帐户,所以我的json文件看起来像 我还尝试在导入的领域配置中设置客户端,但在这两种情况下,我都有以下问题 null Keycloak版本为:8.0.0 谢了。

  • 我正在使用适用于Windows的Docker: < li>Docker版本18.03.1-ce-win64 < li>Docker引擎18.03.1-ce < li>ClickHouse客户端版本1.1.54380 < li>ClickHouse服务器版本1.1.54380 为了将数据从表导出为CSV格式,我正在使用以下命令: > 现在运行容器进行导出 注意:上面的命令可以很好地工作。 现在运行<

  • 我有几个EJB3。x无状态会话bean,未定义接口。我需要将这些bean注入到Springbean中,但我无法这样做。 无接口EJB: 我的豆子: 还有我的豆子。xml 在初始化Spring容器时,我得到以下错误: 异常本身非常清楚——spring容器期望MyBean有一个本地接口视图作为其业务接口;但是,我没有(也不能介绍)。 非常感谢您的帮助!

  • 接口请求需要定义如下三层数据: 表单数据 请求数据 响应数据 问题是以下两个,请教各位大佬: 发起请求的时候需要把表单数据转换成请求数据,发起请求。这个过程能简化吗(我的http客户端是 OkHttp)?如果参数很多,多一层转换就会显得很繁琐! 响应数据如果参数命名不是驼峰法,因为客户端是java,要求类属性驼峰法命名,这个要如何解决?有类似 springboot jpa 中的 @Column(n