这可能是一个愚蠢的问题,但我很困惑,我无法在任何地方找到任何明确的解释.
HK2是一个实现JS330的依赖注入框架,它是Glassfish V3和V4的基础.据我所知,泽西岛使用它
Weld是CDI的参考实现,它也是一个依赖注入框架,也可以在Glassfish中使用?
所以我的问题是这些
我理解这些问题源于我对Java EE整个生态系统的微薄理解,但我们将非常感谢任何答案
嗨,我正在尝试按照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中编写(无类型)lambda演算的基本表达式?即
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结构可用,这意味着基本上只有函数应用程序
我正在努力掌握DDD背后的想法并将它们应用到我们拥有的宠物项目中,我有一些问题,我希望这里的某个人能够回答.
该项目是一个文件管理系统.我们遇到的特殊问题是我们的系统处理的两个概念:a Document
和a的概念DocumentStatus
.
A Document
有许多属性(例如标题,作者等).用户可以Document
在其生命周期内更改任何属性.
一个Document
可能是,在任何时候,是在一个特定的状态,例如NEW
,UNDER_REVISION
,REVISED
,APPROVED
等等.对于每个我们需要知道谁作出修改,以该国国家.
我们需要能够根据文档状态查询系统.示例查询将是"获取REVISED
状态中的所有文档".
"获取用户X已更改其状态的所有文档"
在同一事务中a Document
和a DocumentStatus
需要更改的唯一时间Document
是创建(创建文档并同时为其分配状态NEW
).
对于所有其他时间,该UI允许无论是更新而不是两个(即你可以更改文件的属性,如作者,而不是它的状态.),也可以更新其状态(从NEW
到UNDER_REVISION
),而不是它的属性.
我认为我们可以安全地认为a Document
是实体和聚合根.
我们被重温了DocumentStatus
.一种选择是使其成为Document
聚合的值对象部分.
另一种选择是使其成为实体并成为其自身聚合的根.
我们还想提及我们在各种DDD文档中描述的CQRS,但我们认为这太麻烦了,特别是考虑到我们需要对其执行查询DocumentStatus
.
任何指针或想法都会受到欢迎.
我正在使用 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 时出现了问题。
有任何想法吗?