小编use*_*039的帖子

Weld和HK2之间的关系是什么?

这可能是一个愚蠢的问题,但我很困惑,我无法在任何地方找到任何明确的解释.

HK2是一个实现JS330的依赖注入框架,它是Glassfish V3和V4的基础.据我所知,泽西岛使用它

Weld是CDI的参考实现,它也是一个依赖注入框架,也可以在Glassfish中使用?

所以我的问题是这些

  • 它们是同一规格的不同实现吗?
  • 它们是不同规格的实现吗?
  • 在什么情况下我应该使用其中一个?

我理解这些问题源于我对Java EE整个生态系统的微薄理解,但我们将非常感谢任何答案

glassfish cdi weld hk2

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

Jersey 2.0"入门"指南,找不到mainClass

嗨,我正在尝试按照Jersey 2.0 的入门指南.

我按原样执行了步骤1.1和1.2.没问题.

对于步骤1.3,我有一个问题,因为maven找不到javax-annotation 1.2但是我按照另一个Stackoverflow用户的建议解决了它,并在我的pom中添加了一个存储库.

所以mvn clean test通过没有问题,但是当我试图跑,mvn clean exec:java我回来

[WARNING] java.lang.ClassNotFoundException: com.example.Main
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:285)
at java.lang.Thread.run(Thread.java:722)
Run Code Online (Sandbox Code Playgroud)

pom.xml是由以下命令创建的:

mvn archetype:generate -DarchetypeArtifactId=jersey-quickstart-grizzly2 \
-DarchetypeGroupId=org.glassfish.jersey.archetypes -DinteractiveMode=false \
-DgroupId=com.example -DartifactId=simple-service -Dpackage=com.example \
-DarchetypeVersion=2.0
Run Code Online (Sandbox Code Playgroud)

我唯一补充的内容如下:

<repositories>
  <repository>
    <id>java.net.repo</id>
    <url>https://maven.java.net/content/groups/promoted/</url>
    <layout>default</layout>
  </repository>
</repositories>
Run Code Online (Sandbox Code Playgroud)

如果它是感兴趣的,这是输出 mvn -version

 Apache Maven 3.0.4 (r1232337; 2012-01-17 10:44:56+0200)
 Maven home: /usr/share/maven
 Java version: 1.7.0_21, vendor: Oracle Corporation …
Run Code Online (Sandbox Code Playgroud)

java jersey maven jersey-2.0

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

Java 8和lambda演算等价

有没有人知道如何在java中编写(无类型)lambda演算的基本表达式?即

  • 身份(λx.x),
  • 自我应用(λx.xx)和
  • 功能应用(λx.λarg.xarg)

Java不是无类型的,所以我想任何解决方案都必须适应类型.但我只发现以下内容,请阅读解决方案:

static<T> Function<T,T> identity() {
    return x->x;
}

static<T> Function<? extends Function<? super Function,T>,T> self() {
    return x->x.apply(x);
}

static <B,C> Function<? extends Function<B,C>, Function<B,C>> apply() {
   return x -> arg -> x.apply(arg);
}
Run Code Online (Sandbox Code Playgroud)

我甚至不确定它们是否正确(!).任何人都可以提出更好的选择吗?


编辑:注意,我试图尽可能少地使用语法糖或现成函数来应用lambda演算的基本概念.例如,我知道有identity(),BiFunction等.我试图实现上面只有基本的lambda结构可用,这意味着基本上只有函数应用程序

java function lambda-calculus java-8

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

如何在DDD中建模实体的当前状态

我正在努力掌握DDD背后的想法并将它们应用到我们拥有的宠物项目中,我有一些问题,我希望这里的某个人能够回答.

该项目是一个文件管理系统.我们遇到的特殊问题是我们的系统处理的两个概念:a Document和a的概念DocumentStatus.

A Document有许多属性(例如标题,作者等).用户可以Document在其生命周期内更改任何属性.

一个Document可能是,在任何时候,是在一个特定的状态,例如NEW,UNDER_REVISION,REVISED,APPROVED等等.对于每个我们需要知道谁作出修改,以该国国家.

我们需要能够根据文档状态查询系统.示例查询将是"获取REVISED状态中的所有文档".

"获取用户X已更改其状态的所有文档"

在同一事务中a Document和a DocumentStatus需要更改的唯一时间Document是创建(创建文档并同时为其分配状态NEW).

对于所有其他时间,该UI允许无论是更新而不是两个(即你可以更改文件的属性,如作者,而不是它的状态.),也可以更新其状态(从NEWUNDER_REVISION),而不是它的属性.

我认为我们可以安全地认为a Document是实体和聚合根.

我们被重温了DocumentStatus.一种选择是使其成为Document聚合的值对象部分.

另一种选择是使其成为实体并成为其自身聚合的根.

我们还想提及我们在各种DDD文档中描述的CQRS,但我们认为这太麻烦了,特别是考虑到我们需要对其执行查询DocumentStatus.

任何指针或想法都会受到欢迎.

domain-driven-design

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

无法找到类型的上下文数据:java.ws.rs.container.ContainerRequest(Wildfly 错误)

我正在使用 Wildfly 9.0.1.Final

我正在部署一个 REST 应用程序,它的端点定义如下:

@GET
@Path("/view/products")
@Produces(MediaType.APPLICATION_JSON)
@CORSEnabled
@Protected
public String getConfiguredProducts(
    @Context ContainerRequestContext request) {
    if (request != null) {
        Integer companyId = (Integer) request.getProperty("company");
        if (companyId != null) {
             //do stuff
        }
    }
    // ... more staff
}
Run Code Online (Sandbox Code Playgroud)

当应用程序运行时,上下文被注入,即“请求”非空。

当我尝试检索该属性时,我得到了错误:

executing GET /complaints/view/products:        
org.jboss.resteasy.spi.LoggableFailure: Unable to find contextual data    
of type: javax.ws.rs.container.ContainerRequestContext
Run Code Online (Sandbox Code Playgroud)

请注意,该应用程序在 glassfish/jersey 上运行没有问题,当我尝试将其移动到 wildfly/resteasy 时出现了问题。

有任何想法吗?

jax-rs resteasy wildfly

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