шов-калитка с причалом 6.1.26, сварка 1.1.1 - PullRequest
1 голос
/ 08 мая 2011

Я пробую шов-калитку со встроенной Jetty 6.1.26, сваркой 1.1.1, шов-калиткой 3.0.0, калиткой 1.4.17

После того, как я исправил ошибку seam-wicket, которая не позволяет найти BeanManager (JNDI не работает, нужно извлечь из ServletContext - для этого я использовал чьи-то классы).

  SLF4J: Class path contains multiple SLF4J bindings.
  SLF4J: Found binding in [jar:file:/mnt/ssd1/data/.m2/repository/org/jboss/weld/servlet/weld-servlet/1.1.1.Final/weld-servlet-1.1.1.Final.jar!/org/slf4j/impl/StaticLoggerBinder.class]
  SLF4J: Found binding in [jar:file:/mnt/ssd1/data/.m2/repository/org/slf4j/slf4j-log4j12/1.5.11/slf4j-log4j12-1.5.11.jar!/org/slf4j/impl/StaticLoggerBinder.class]
  SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
  May 08, 2011 9:16:11 AM org.mortbay.log.Slf4jLog info
  INFO: Logging to org.slf4j.impl.JDK14LoggerAdapter(org.mortbay.log) via org.mortbay.log.Slf4jLog
  May 08, 2011 9:16:11 AM org.jboss.jawabot.web.RunInJetty run
  INFO: Static files are in:
          /mnt/ssd1/_projekty/GoogleCode-ondrazizka/svn-whole/trunk/bots/JawaBot/branches/2.0/web/workdir/../src/main/java/org/jboss/jawabot/web/files
     == /mnt/ssd1/_projekty/GoogleCode-ondrazizka/svn-whole/trunk/bots/JawaBot/branches/2.0/web/src/main/java/org/jboss/jawabot/web/files
    @@@@@@@ _: org.mortbay.naming.NamingContext
    @@@@@@@ env: org.mortbay.naming.NamingContext
    @@@@@@@ BeanManager: javax.naming.Reference
    @@@@@@@ org.mortbay.jetty.servlet.Context@15d3ddab{_,null}: org.mortbay.naming.NamingContext
  May 08, 2011 9:16:11 AM org.jboss.weld.bootstrap.WeldBootstrap <clinit>
  INFO: WELD-000900 1.1.1 (Final)
  May 08, 2011 9:16:11 AM org.mortbay.log.Slf4jLog info
  INFO: jetty-6.1.26
  May 08, 2011 9:16:12 AM org.jboss.weld.bootstrap.WeldBootstrap startContainer
  INFO: WELD-000101 Transactional services not available. Injection of @Inject UserTransaction not available. Transactional observers will be invoked synchronously.
  09:16:12.490 INFO [main] org.jboss.seam.solder.Version Seam Solder 3.0.0.Final (build id: 3.0.0.Final)
  May 08, 2011 9:16:12 AM org.jboss.weld.environment.jetty.AbstractJettyPre72Container initialize
  INFO: Jetty detected, JSR-299 injection will be available in Servlets and Filters. Injection into Listeners is not supported.
  09:16:12.972 INFO [main] org.jboss.seam.solder.core.CoreExtension Preventing class org.jboss.seam.solder.core.VersionLoggerUtil from being installed as bean due to @Veto annotation
  09:16:13.233 INFO [main] org.jboss.seam.solder.core.CoreExtension Preventing class org.jboss.seam.solder.resourceLoader.ResourceProvider from being installed as bean due to @Veto annotation
  May 08, 2011 9:16:13 AM org.jboss.interceptor.util.InterceptionTypeRegistry <clinit>
  WARNING: Class 'javax.ejb.PostActivate' not found, interception based on it is not enabled
  May 08, 2011 9:16:13 AM org.jboss.interceptor.util.InterceptionTypeRegistry <clinit>
  WARNING: Class 'javax.ejb.PrePassivate' not found, interception based on it is not enabled
  09:16:13.632 DEBUG [main] org.jboss.seam.solder.bean.defaultbean.DefaultBeanExtension Installing default managed bean Default Bean with types [class java.lang.Object, class javax.el.VariableMapper] and qualifiers [@org.jboss.seam.solder.el.Mapper()]
  09:16:13.635 DEBUG [main] org.jboss.seam.solder.bean.defaultbean.DefaultBeanExtension Installing default managed bean Default Bean with types [class java.lang.Object, class javax.el.FunctionMapper] and qualifiers [@org.jboss.seam.solder.el.Mapper()]
  ---- Wicket init() ----

Тогда я попробовал пример RandomNumber
http://docs.jboss.org/weld/reference/1.1.0.Final/en-US/html_single/#d0e948

  @ApplicationScoped
  public class RandomNumberGenerator {
     private Random random = new Random(System.currentTimeMillis());
     @Produces @Named int getRandomNumber() {
        return random.nextInt(100);
     }
  }// class

И попытался @Inject его в компоненте Wicket

  public class CdiTestPanel extends Panel
  {
     //@Inject String user;
     //@Inject Logger log;
     @Inject int randomNumber;
     ...
  }

Ничего не получалось, я получал это каждый раз:

  Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [int] with qualifiers [@Default] at injection point [[field] @Inject org.jboss.jawabot.web._co.ReservationListPanel.randomNumber]
   at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:270)
   at org.jboss.weld.bootstrap.Validator.validateInjectionTarget(Validator.java:299)
   at org.jboss.weld.manager.InjectionTargetValidator.addInjectionTarget(InjectionTargetValidator.java:34)
   at org.jboss.weld.manager.BeanManagerImpl.createInjectionTarget(BeanManagerImpl.java:1052)
   at org.jboss.seam.wicket.util.NonContextual.<init>(NonContextual.java:56)
   at org.jboss.seam.wicket.util.NonContextual.of(NonContextual.java:31)
   at org.jboss.seam.wicket.SeamComponentInstantiationListener.onInstantiation(SeamComponentInstantiationListener.java:28)
   at org.apache.wicket.Application.notifyComponentInstantiationListeners(Application.java:1093)
   at org.apache.wicket.Component.<init>(Component.java:923)
   at org.apache.wicket.MarkupContainer.<init>(MarkupContainer.java:113)
   at org.apache.wicket.markup.html.WebMarkupContainer.<init>(WebMarkupContainer.java:49)
   at org.apache.wicket.markup.html.WebMarkupContainerWithAssociatedMarkup.<init>(WebMarkupContainerWithAssociatedMarkup.java:51)
   at org.apache.wicket.markup.html.WebMarkupContainerWithAssociatedMarkup.<init>(WebMarkupContainerWithAssociatedMarkup.java:43)
   at org.apache.wicket.markup.html.panel.Panel.<init>(Panel.java:76)
   at org.jboss.jawabot.web._co.ReservationListPanel.<init>(ReservationListPanel.java:51)
   at org.jboss.jawabot.web._pg.TakePage.<init>(TakePage.java:94)
   ... 31 more

Итак, как мне заставить работать CDI? Спасибо за любые идеи.

...