我有3个项目(使用Maven):war,ejb和ear,我正面临这个问题:
我的war
项目有ejb
依赖项,所以我把...
<dependency>
<groupId>my.company.name</groupId>
<artifactId>ejb-module</artifactId>
<version>1.0</version>
<type>ejb</type>
<scope>provided</scope>
</dependency>
... ear
有ejb
和war
个依赖关系:
<dependency>
<groupId>my.company.name</groupId>
<artifactId>web-module</artifactId>
<version>1.0</version>
<type>war</type>
</dependency>
<dependency>
<groupId>my.company.name</groupId>
<artifactId>ejb-module</artifactId>
<version>1.0</version>
<type>ejb</type>
</dependency>
...
<configuration>
<filtering>true</filtering>
<version>7</version>
<modules>
<webModule>
<groupId>my.company.name</groupId>
<artifactId>web-module</artifactId>
<contextRoot>/</contextRoot>
</webModule>
<ejbModule>
<groupId>my.company.name</groupId>
<artifactId>ejb-module</artifactId>
</ejbModule>
</modules>
</configuration>
在部署期间,我可以更新架构并创建表,序列,但是当我尝试使用会话bean时,我总能得到
javax.naming.NameNotFoundException: MySessionBean
这很有趣,因为我在控制台上看到了
JNDI bindings for session bean named 'MySessionBean'
的子部署ejb-module
中的ear
。
我已经花了好几个小时才弄清楚我错过了什么,但我一无所获。它可能是依赖范围吗?
答案 0 :(得分:0)
我忘了说出了什么问题:
java:global/ejb-module/MySessionBean
java:app/ejb-module/MySessionBean
java:module/MySessionBean
我转而使用java:module/MySessionBean
来获取会话Bean,所以异常类似于“..找不到ear / module / MySessionBean”,所以我改为java:app/ejb-module/MySessionBean
,现在它可以正常工作了! / p>