Почему Websphere 9 не обнаруживает значение Annotated mappedName для EJB? - PullRequest
0 голосов
/ 27 ноября 2018

Ниже приведен пример кода:

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 Enterprise -> -> Имена EJB JNDI и назначутам же имя JNDI и попробуйте поискать, оно работает.

Я не хочу делать этот дополнительный шаг или настраивать какие-либо XML-файлы (ibm-ejb-jar-bnd.xml), чтобы это происходило во время приложенияСамо развертывание.

Как сделать эту привязку из самого кода JAVA?Мой основной мотив - сделать мой код независимым от сервера.

...