Websphere 9为什么不为EJB检测带注释的namedName值?

时间:2018-11-27 09:35:09

标签: java annotations ejb-3.0 websphere-9

以下是我的示例代码:

AddStatelessBean.java:

@Stateless(name = "AddStatelessBean", mappedName="ASBean")
@Remote(AddStatelessBean.class)
@LocalBean
public class AddStatelessBeanImpl implements AddStatelessBean {
    public int add(int a, int b) {
        return a + b;
    }
}

我的电话代码: CallAddBean.java:

public static AddStatelessBean getAsbByName() throws Exception {
        Context initialContext = new InitialContext();
        AddStatelessBean asbObj = (AddStatelessBean) initialContext.lookup("ASBean");
        return asbObj;
}

但是出现以下错误:

javax.naming.NameNotFoundException: Context: VRDWIN7WAS9Node03Cell/nodes/VRDWIN7WAS9Node03/servers/server1, name: ASBean: First component in name ASBean not found. [Root exception is org.omg.CosNaming.NamingContextPackage.NotFound: IDL:omg.org/CosNaming/NamingContext/NotFound:1.0]

但是,如果我转到Websphere管理控制台->应用程序-> Websphere企业应用程序->-> EJB JNDI名称,并在那里指定相同的JNDI名称并尝试查找,那么它将起作用。

我不想执行额外的步骤,也不想配置任何XML(ibm-ejb-jar-bnd.xml)以使它在App Deployment本身期间发生。

如何从纯JAVA代码本身进行绑定?我的主要动机是使我的代码独立于服务器运行。

0 个答案:

没有答案