2014-11-07 5 views
1

Ошибка WebLogic 12.1.3 при развертывании веб-приложения с простой вставкой CDI. Следующее исключение:Ошибка WebLogic 12.1.3 WELD-001408 Невыполненные зависимости

weblogic.application.ModuleException: org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [Interface2] with qualifiers [@Default] at injection point [[field] @Inject public pruebas1.Clase1.clase2] 
    at weblogic.application.internal.ExtensibleModuleWrapper.start(ExtensibleModuleWrapper.java:140) 
    at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:124) 
    at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:216) 
    at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:211) 
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42) 
    Truncated. see log file for complete stacktrace 
Caused By: org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [Interface2] with qualifiers [@Default] at injection point [[field] @Inject public pruebas1.Clase1.clase2] 
    at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:315) 
    at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:284) 
    at org.jboss.weld.bootstrap.Validator.validateInjectionTarget(Validator.java:342) 
    at org.jboss.weld.manager.InjectionTargetValidator.addInjectionTarget(InjectionTargetValidator.java:29) 
    at org.jboss.weld.manager.BeanManagerImpl.createInjectionTarget(BeanManagerImpl.java:943) 
    Truncated. see log file for complete stacktrace 
> 

Когда я развернуть войну в WebLogic 12.1.3 (Zip Distribution и установщиков для разработчиков) внутри OEPE 12.1.3.2 я получаю ошибку, описанную. Но, с WebLogic 12.1.1 (Zip Distribution и Installers for Developers) внутри одного OEPE 12.1.3.2 нет проблем. Ничего не возникает, если я экспортирую файл war war и разворачиваю его с помощью веб-консоли без интеграции OEPE. Кроме того, когда я развертываю войну в WebLogic 12.1.3. автономный («полный» выпуск) нет проблем.

Я также обнаружил, что файл MANIFEST.MF (внутри wlserver/server/lib/api.jar) ссылается на «javax.inject_1.jar», который не существует в папке wlserver/modules. Вместо этого есть файл «javax.inject-1.jar». Чтобы мой проект работал (импортировал класс javax.inject.Inject класса), я скопировал файл с именем javax.inject_1.jar из файла javax.inject-1.jar в той же папке.

Структура источника ява войны:

src 
    pruebas1 
     Clase1.java 
    pruebas2 
     Clase2.java 
     Interface2.java 

Структура войны WebContent является:

WebContent 
    WEB-INF 
     beans.xml 
     weblogix.xml 

Классы и интерфейс:

@WebService 
public class Clase1 { 
    @Inject 
    public Interface2 clase2; 
    @WebMethod 
    public String aMayusculas(@WebParam(name = "palabra") String palabra) { 
    long tm = System.currentTimeMillis(); 
    System.out.println(tm + " - clase2: " + (clase2 == null ? "null" : clase2.toString())); 
    return palabra == null ? "null" : tm + " - " + palabra.toUpperCase(); 
    } 
} 

public interface Interface2 { 
    void doIt(String a); 
} 

public class Clase2 implements Interface2 { 
    @Override 
    public void doIt(String a) { 
    System.out.println(a); 
    } 
} 

XML файлы: beans.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation=" 
     http://java.sun.com/xml/ns/javaee 
     http://java.sun.com/xml/ns/javaee/beans_1_0.xsd"> 
</beans> 

weblogic.xml

<?xml version="1.0" encoding="UTF-8"?> 
<wls:weblogic-web-app xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.4/weblogic-web-app.xsd"> 
    <wls:weblogic-version>12.1.3</wls:weblogic-version> 
    <wls:context-root>prueba05weblogic</wls:context-root> 
</wls:weblogic-web-app> 

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

Efren V.

+0

Это более или менее обман: http://stackoverflow.com/questions/15162522/deployment-error-weld-001408-with-wls12c-and-oepe Это также упоминает, что это было зафиксировано в патч к 12.1.1 http://biemond.blogspot.com/2012_01_01_archive.html Возможно, он снова сломался в 12.1.3 –

ответ

0

Проблема решена.

Я создал SR на сайте поддержки Oracle. Oracle построил внутренний патч.

Efren.

0

вы можете заменить @Inject аннотации с @Produces в качестве временного решения

1

После поиска через три дня, мы обнаружили, что проект работал только тогда, когда развернет через консоль WebLogic, если мы развернули через оракул плагин в затмении он не будет работать.

Итак, если вы используете eclipse, на экране «серверы» щелкните веб-сервер правой кнопкой мыши, выберите «Свойства -> Веблогик -> Публикация», измените радио «Pubish как виртуальное приложение» на «Опубликовать как взорванное архив "

+0

Спасибо! Вы спасли мою жизнь :) – AliReza19330

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