Deploy Wicket CDI on TomEE with OWB

Im facing a problem when trying to deploy to TomEE (using OWB). Im getting the following exception:

javax.enterprise.inject.UnsatisfiedResolutionException: Api type [org.apache.wicket.cdi.AutoConversation] is not found with the qualifiers
Qualifiers: [@javax.enterprise.inject.Default()]
for injection into Field Injection Point, field name : autoConversation, Bean Owner : [null]  
at org.apache.webbeans.util.InjectionExceptionUtil.throwUnsatisfiedResolutionException(InjectionExceptionUtil.java:60)  
at org.apache.webbeans.container.InjectionResolver.getInjectionPointBean(InjectionResolver.java:250)
at org.apache.webbeans.inject.AbstractInjectable.inject(AbstractInjectable.java:76)
at org.apache.webbeans.inject.InjectableField.doInjection(InjectableField.java:65)
at org.apache.webbeans.portable.InjectionTargetImpl.injectFields(InjectionTargetImpl.java:372)
at org.apache.webbeans.portable.InjectionTargetImpl.inject(InjectionTargetImpl.java:358)
at org.apache.webbeans.portable.InjectionTargetImpl.inject(InjectionTargetImpl.java:342)
at org.apache.wicket.cdi.NonContextual.postConstruct(NonContextual.java:129)
at org.apache.wicket.cdi.NonContextualManager.postConstruct(NonContextualManager.java:65)
at org.apache.wicket.cdi.ConversationPropagator.(ConversationPropagator.java:122)
at org.apache.wicket.cdi.CdiConfiguration.configure(CdiConfiguration.java:188)

I was looking for information on the Internet, but there seems to be nothing on it. I have a seam-conversation-spire and seam-conversation-owl-cans on my way to classes, so this is not a dependency problem (there were some of them, but they got over).

I understand from other people that deploying EAR with wicket-cdi on other application servers is very simple and simple. However, I really like TomEE (the "TomCat-based" concept) and won't want to switch.

I'm here in difficulty, does anyone know what is happening?

Change 1:

This is the contents of the init method of the application class:

public void init() {
  super.init();

  BeanManager manager = (BeanManager)new InitialContext().lookup("java:comp/BeanManager");

  new CdiConfiguration(manager).configure(this);
}

There is nothing more in the class.

Edit 2:

application.xml, EAR, :

<application 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/application_6.xsd"
             version="6">
    <initialize-in-order>true</initialize-in-order>
    <module>
        <ejb>integration.jar</ejb>
    </module>
    <module>
        <ejb>application.jar</ejb>
    </module>
    <module>
        <web>
            <web-uri>presentation.war</web-uri>
            <context-root>app</context-root>
        </web>
    </module>
</application>

3:

, wicket-cdi openwebbeans, , :

  • OWB AutoConversation (.. Wicket-cdi JAR) - WAR lib, Ant,
  • OWB , JAR-wicket-cdi beans JAR. , , beans.xml MANIFEST.MF JAR META-INF cdi spec

, .

4:

JAR, WAR , :

  • --3.0.0.Final.jar
  • -1,7-dep.jar
  • -1.7.jar
  • -AUTH--6.15.0.jar
  • wicket- bean -validation-6.15.0.jar
  • --0.17.jar
  • -6.15.0.jar
  • -6.15.0.jar
  • DateTime-6.15.0.jar
  • -devutils-6.15.0.jar
  • --6.15.0.jar
  • Guice-6.15.0.jar
  • --6.15.0.jar
  • JMX-6.15.0.jar
  • -6.15.0.jar
  • wicket- spring -6.15.0.jar
  • Util-6.15.0.jar
  • -6.15.0.jar
+4
1

Wicket , AutoConversion bean ConversationPropagator.

. org.apache.wicket.cdi.ConversationPropagator:

@Inject
Conversation conversation_;

@Inject
AutoConversation autoConversation;

:

  • bean org.apache.wicket.cdi.AutoConversation bean.

  • Disable ConversationPropagator

. , ConversationPropagator

new CdiConfiguration(manager).setPropagation(ConversationPropagation.NONE).configure(this);
+1

Source: https://habr.com/ru/post/1542876/


All Articles