小编Jos*_*eta的帖子

Scala用于理解/循环和类型化模式

根据Scala语言规范的第6.19节,这个for循环:

for (e <-p) e'
Run Code Online (Sandbox Code Playgroud)

被翻译成:

p <- e.withFilter{case p => true; case _ => false}.foreach{case p => e?}
Run Code Online (Sandbox Code Playgroud)

那么,为什么这个小程序:

object ForAndPatterns extends App {
  class A()
  class B() extends A

  val list: List[A] = List(new A(), new B(), new B())

  for {b: B <- list}
    println(b)
}
Run Code Online (Sandbox Code Playgroud)

给出了这个编译错误:

Error:(7, 13) type mismatch;
 found   : proves.ForAndPatterns.B => Unit
 required: proves.ForAndPatterns.A => ?
   for {b: B <- list}
Run Code Online (Sandbox Code Playgroud)

当这个表达式:

list.withFilter{case a: B => true; case _ => false}.foreach{case b => println(b)} …
Run Code Online (Sandbox Code Playgroud)

scala

6
推荐指数
1
解决办法
108
查看次数

如何使用CDI将http会话属性注入bean

我有一些遗留代码,使用如下代码将对象作为http会话属性:

MyObject object = new MyObject();
Map<String, Object> sessionMap = FacesContext.getCurrentInstance().getExternalContext().getSessionMap();
sessionMap.put("attrname", object);
Run Code Online (Sandbox Code Playgroud)

旧的facelets使用了访问代码

 @ManagedProperty("#{attrname}")
 private MyObject object;
Run Code Online (Sandbox Code Playgroud)

有没有办法使用CDI(@Inject)将此会话属性注入Bean?

在使用CDI的新代码中,创建和注入需要以受控方式创建的对象的更好方法是什么.

session jsf cdi managed-bean

5
推荐指数
1
解决办法
3082
查看次数

Spring Boot 环境中的 Bootstrap Weld

有谁知道在带有嵌入式 Tomcat 的 Spring Boot Jar 应用程序中引导 Weld 的方法。

我尝试将 org.jboss.weld.environment.servlet.Listener 与

import org.jboss.weld.environment.servlet.Listener; 

@SpringBootApplication
public class MyApplication
{
  public static void main(String[] args)
  {
    SpringApplication.run(MyApplication.class, args);
  }

  @Bean
  public Listener weldListener()
  {
    return new Listener();
  }
}
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

java.lang.RuntimeException: WELD-ENV-001104: Cannot get StandardContext from ServletContext.
    at org.jboss.weld.environment.tomcat.WeldForwardingInstanceManager.getStandardContext(WeldForwardingInstanceManager.java:104) ~[weld-servlet-2.4.6.Final.jar:2.4.6.Final]
...
Caused by: java.lang.ClassCastException: org.apache.catalina.core.StandardContext$NoPluggabilityServletContext cannot be cast to org.apache.catalina.core.ApplicationContextFacade
    at org.jboss.weld.environment.tomcat.WeldForwardingInstanceManager.getStandardContext(WeldForwardingInstanceManager.java:101) ~[weld-servlet-2.4.6.Final.jar:2.4.6.Final]
... 13 common frames omitted
Run Code Online (Sandbox Code Playgroud)

tomcat cdi weld spring-boot

1
推荐指数
1
解决办法
2701
查看次数

标签 统计

cdi ×2

jsf ×1

managed-bean ×1

scala ×1

session ×1

spring-boot ×1

tomcat ×1

weld ×1