我正在创建一个wicket(7.0.0-M5)应用程序,我想使用标准的EJB框架。
因此,我创建了一个多模式项目,其中包含耳模块EAR_NAME,网络模块WICKET_NAME,ejb模块BUSINESS_EJB_NAME和ejb模块COMMON_EJB_NAME。
我使用wicketstuff-javaee-inject库中的GlobalJndiNamingStrategy类将业务和常用ejb模块导入wicket web模块。
在Wicket WebApplication类中:
protected void init() {
getComponentInstantiationListener.add(new JavaEEComponentInjector(this,
new GlobalJndiNamingStrategy(EAR_NAME, BUSINESS_EJB_NAME)));
getComponentInstantiationListener.add(new JavaEEComponentInjector(this,
new GlobalJndiNamingStrategy(EAR_NAME, COMMON_EJB_NAME)));
}
来自业务ejb的所有服务均可用。但是当我尝试从公共模块调用服务时,我总是得到一个NamingException,它说:
找不到“EAR_NAME / BUSINESS_EJB_NAME / CommonService!commonServiceMethod”...
我搜索了互联网,但在我的设置中找不到任何门票示例。是不是可以在wicket应用程序中查找多个模块?
答案 0 :(得分:0)
我还没有使用EJB,也没有使用wicketstuff-javaee-inject但是你可能需要https://github.com/wicketstuff/core/blob/master/jdk-1.7-parent/javaee-inject-parent/javaee-inject/src/main/java/org/wicketstuff/javaee/naming/global/ModuleJndiNamingStrategy.java而不是GlobalJndiNamingStrategy