javax.naming.NameNotFoundException: при попытке поиска 'abc' не нашел подконтекст 'abc' - PullRequest
0 голосов
/ 26 октября 2018

Я разработал приложение EJB с удаленным интерфейсом.Это приложение было развернуто в weblogic 12.

В Java-приложении я пытаюсь использовать мое EJB-приложение, но когда я вызываю поиск метода из класса InitialContext, я получаю это сообщение "javax.naming.NameNotFoundException:При попытке поиска NewSessionBean.remote не удалось найти подконтекст «NewSessionBean»

Это код из удаленного интерфейса:

package co.com.tutorial.stateless;

import java.util.List;
import javax.ejb.Remote;

/**
 *
 * @author jquintep
 */
@Remote
public interface NewSessionBeanRemote {

    void addBook(String bookName);

    List getBooks();
}

Это часть кода из реализации:

package co.com.tutorial.stateless;

import java.util.ArrayList;
import java.util.List;
import javax.ejb.Stateless;

/**
 *
 * @author jquintep
 */
@Stateless
public class NewSessionBean implements NewSessionBeanRemote {

    List<String> bookShelf;

    public NewSessionBean() {
        bookShelf = new ArrayList<String>();
    }

И это часть кода, когда я вызываю lookup:

 try {
         int choice = 1; 
         NewSessionBeanRemote  libraryBean = 
         (NewSessionBeanRemote)ctx.lookup("NewSessionBean/remote");

Спасибо за рассмотрение моего запроса.

PS Я следую учебному пособию по EJB на tutorialspoint.

1 Ответ

0 голосов
/ 26 октября 2018

Вы можете увидеть свое дерево JNDI по следующему пути в консоли Weblogic

Среда -> серверы -> выбрать свой сервер -> щелкнуть ссылку на просмотр дерева JNDI

Я всегда проверяю дерево JNDIдля проблем с поиском.

Почему вы не используете переносимое имя JNDI для поиска?

https://docs.oracle.com/cd/E19798-01/821-1841/girgn/index.html

Если вы развернули свою реализацию в качестве отдельного EAR, вы можете использовать следующий поиск

ctx.lookup("java:global/[your ear name]/[your jar file name(module name)]/NewSessionBean!co.com.tutorial.stateless.NewSessionBeanRemote");

Если вы развернули свою реализацию как отдельнуюбанку, вы можете использовать следующий поиск

ctx.lookup("java:global/[your jar file name(module name)]/NewSessionBean!co.com.tutorial.stateless.NewSessionBeanRemote");

Если вы хотите посмотреть в том же EAR, но в другом банке

ctx.lookup("java:app/[your jar file name(module name)]/NewSessionBean!co.com.tutorial.stateless.NewSessionBeanRemote");

Если вы хотите посмотреть в том жеУХО и в одной банке

ctx.lookup("java:module//NewSessionBean!co.com.tutorial.stateless.NewSessionBeanRemote");
...