是否可以使用本地接口从war访问驻留在ear文件中的ejb
都部署在同一个应用服务器下。
ejb:
@Stateless(name="FirstDemoEJB",mappedName = "FirstDemoEJB/Local")
public class FirstSessionBean implements FirstSessionBeanRemote, FirstSessionBeanLocal {
}
现在,在测试servlet(战争)中:
InitialContext context = new InitialContext();
Object ob = context.lookup("java:comp/env/FirstDemoEJB/Local");
失败于:
javax。命名。NameNotFoundException:试图在/app/webapp/FirstWebEJBTest/12292093中查找comp/env/FirstDemoEJB/Local时。;
但是远程查找可以很好地工作:
Object ob = context.lookup("FirstDemoEJB/Local#org.weblogic.FirstSessionBeanRemote");
您应该使用容器依赖注入从servlet访问ejb。问题很可能是jndi查找路径不正确。使用容器依赖项注入可以让您不必了解jndi命名方案。
public class MyServlet extends HttpServlet {
@EJB(mappedName = "FirstDemoEJB/Local")
private FirstSessionBeanLocal firstSessionBeanLocal;
}
问题内容: 我如何知道要从WAR中获取文件的文件参考。 WAR的结构为: WAR SRC -Model -Network structure WebContent META-INF WEB-INF LIB JSP位于WebContent下,我已将config.txt文件放在WebContent文件夹下,并尝试通过 BufferedReader in = new BufferedReader(new
我在同一个weblogic服务器上部署了两个项目: 带有EJB(@本地,@无状态)的耳朵存档 一个战争档案 我想从war档案中的一个类访问EJB。这通常是可能的吗?怎样
我尝试使用Spring Boot 2.0.2从战争转移到罐子,并且在使用故障安全进行maven测试时遇到了问题。 我看到两种错误: > < li> < code > Java . lang . noclassdeffounderror ,其中列出了我的一个bean类 当我在 IntelliJ 中运行这些测试时,一切正常,但它们在 maven 中失败。与此同时,当我回到建立战争而不是罐子时,一切都有
我在JBoss中部署了一个Web应用程序(jms-api.war),我想从中通过JNDI获得一个JMS连接工厂,没有任何配置(像这样)可以吗?我尝试在没有任何配置的情况下使用JNDI: standalone.xml中的我的连接工厂: 在我的应用程序中,我有这个Spring豆来访问连接工厂(它在我的测试中使用嵌入式hornetq工作): 在jboss启动我得到这个错误,我该如何解决它?: Jboss
问题内容: 相同的.war文件可以很好地部署到Glassfish v2.1上。我不知道上一次尝试v3,但我想检查一下热部署功能,因为有传言说它可以在glassfish v3的netbeans 6.8中使用。因此,我像往常一样进行部署,并收到以下错误消息: 我不明白为什么它抱怨任何与EJB相关的东西,因为这是一个.war文件。有任何想法吗? 更新: 我对glassfish提出了一个错误:https
我试图通过ServiceLocator进行EJB查找,而不硬编码JNDI名称,只使用本地接口名称。问题是EJB分布在其他模块(JAR)中。根据示例,我有以下场景: 项目-xxx: 由容器向JNDI注册: