2015-07-21 7 views
4

У меня есть следующий код, который я пытаюсь развернуть как EJB к WebLogic 12c, но я получаю сообщение об ошибке:«Имя JNDI уже используется» в Weblogic 12с с EJB3

"Error deploying the EJB GeopoliticalServiceBean(Application: campaigner-ejb, EJBComponent: campaigner-service.jar), the JNDI name java:global/campaigner-ejb/campaigner-service/GeopoliticalServiceBean!com.dr_dee_sw.campaigner.service.GeopoliticalServiceLocal is already in use. You must set a different JNDI name in the weblogic-ejb-jar.xml deployment descriptor or corresponding annotation for this EJB before it can be deployed."

public interface GeopoliticalService 
{ 
... 
} 

@Local 
public interface GeopoliticalServiceLocal extends GeopoliticalService 
{ 
} 

@Remote 
public interface GeopoliticalServiceRemote extends GeopoliticalService 
{ 
} 

@TransactionManagement(value = TransactionManagementType.CONTAINER) 
@TransactionAttribute(value = TransactionAttributeType.REQUIRED) 
@Stateless 
public class GeopoliticalServiceBean implements GeopoliticalServiceLocal,GeopoliticalServiceRemote 
{ 
... 
} 

Дополнительная информация: Я уменьшил файл EJB-JAR, campaigner-service.jar, так что в нем есть только один компонент, а также интерфейсы и исключения. EAR-файл, campaigner-ejb.ear, имеет только EJB-JAR в нем на основном уровне. Он также имеет каталог «lib» с поддерживающими библиотеками, но в нем есть только банки DAO и DTO, а также сторонние библиотеки. Итак, для меня это не похоже на проблему с упаковкой.

Это мое первое приложение, использующее все аннотации, но оно все еще кажется довольно прямым. Что мне не хватает?

+1

Не могли бы вы пояснить, что вы имеете в виду, уменьшив файл EJB-JAR? Можете ли вы вставить содержимое файла? – slwk

+0

Вы получаете ту же ошибку, даже если вы отскакиваете веблогику? – Phuthib

+1

В EJB-JAR было несколько бобов. Чтобы уменьшить количество переменных в этой проблеме, я изменил файл сборки, чтобы включить только один компонент. Файл EJB-JAR является JAR-файлом, поэтому я не могу его по-настоящему скопировать, но его содержимое включает в себя одну реализацию EJB плюс ее интерфейсы, а также некоторые пользовательские исключения. –

ответ

1

Во время перехода от Weblogic 10 к Weblogic 12 мы столкнулись с той же проблемой. Мы могли бы воспроизвести проблему путем развертывания EAR на новом сервере без надлежащего конфигурирования источников данных; это приведет к исключению NameNotFoundException во время развертывания. Каждая следующая попытка развернуть EAR приведет к тому, что имя JDNI уже используется, даже после перезапуска, развертывания, перераспределения.

Единственное, что разрешило проблему, - это удаление кеша (и, самое главное, EJBCompilerCache) и tmp-папки целевого сервера.

Смежные вопросы