标签: jakarta-ee

在 JPQL 中,如何访问命名参数的属性?

我正在使用 Hibernate 3.5.4-Final。

我想将实体作为命名查询的参数传递,然后该查询中访问该命名参数的持久属性。我想做这个:

@NamedQuery(name = "hello", query = "SELECT p FROM WorkPackage p WHERE p IN (:workPackage).relatedWorkflows")
Run Code Online (Sandbox Code Playgroud)

问题接近查询的结尾,在

(:workPackage).relatedWorkflows
Run Code Online (Sandbox Code Playgroud)

这会导致 Hibernate 抛出一个部署时的 QuerySyntaxException。删除括号没有帮助;为了清楚起见,我把它们留在了里面。有什么办法可以解决这个问题,还是我必须以编程方式执行此操作?

hibernate jpa jpql jpa-2.0 jakarta-ee

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

野蝇随机被杀死

我遇到了一个奇怪的问题,我尝试了所有方法但无法解决。

我有一个 Wildfly 8.2 实例,运行一个控制 CallCenter 的 JavaEE 应用程序,该应用程序使用 2 ~ 8 GB 内存取决于工作量,该应用程序控制电话,以及用于配置/报告和其他内容的 Web 界面。

野蝇随机被杀死,我在控制台中看到以下消息:

*** JBossAS process XXXX received kill signal ***
Run Code Online (Sandbox Code Playgroud)

我需要重新开始。

我读到可能是 linux OOM Killer 杀死了我的进程,所以我在 /proc/wildfly_pid/oom_adj 中设置了值 -17,正如我在文档中读到的那样,它使 oom Killer 忽略该进程,但它似乎不起作用,并且 Wildfly 不断被杀死,我做了一个 cron 作业,每 1 分钟配置 oom_adj 一次,并检查它,配置正确,但没有任何帮助。

我正在监视该应用程序,内存大约为 3 GB,它被杀死了,它工作了几个小时,但随机被杀死。

我不知道该怎么办,我正在使用 Debian 7.8 和来自我的客户端的服务器,具有 16gb 内存和独立模式下的 Wildfly 8.2,并具有以下 java opts

-server -Xms256m -Xmx8192m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=$JBOSS_MODULES_SYSTEM_PKGS -Djava.awt.headless=true
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激。

dmesg 输出dmesg的链接

java linux wildfly jakarta-ee

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

我应该使用 JWT for java 的哪些二进制文件?

我是 JWT 令牌使用的新手,在阅读jwt.io时了解到,有六个版本,具有不同类型的二进制文件,如下所示。

  1. com.auth0/java-jwt/3.3.0
  2. org.bitbucket.b_c / jose4j / 0.6.3
  3. com.nimbusds / nimbus-jose-jwt / 5.7
  4. io.jsonwebtoken/jjwt/0.9.0
  5. com.inversoft / prime-jwt / 1.3.0
  6. io.vertx / vertx-auth-jwt / 3.5.1

任何人都可以向我解释一下除了java版本支持之外它们之间的广泛区别是什么。

java jwt jakarta-ee

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

错误:包 jakarta.xml.bind.annotation 不存在(Java 11)

我正在将 Ant OSGI Java 项目从 Java 8 迁移到 11。

我添加了以下罐子:

 jakarta.xml.bind-api;bundle-version="4.0.0",
 com.sun.xml.bind.jaxb-impl;bundle-version="4.0.0",
 jakarta.activation-api;bundle-version="2.1.0",
 com.sun.xml.bind.jaxb-osgi;bundle-version="4.0.0",
 org.glassfish.hk2.osgi-resource-locator;bundle-version="2.5.0"
Run Code Online (Sandbox Code Playgroud)

然而在 BuildFile 我仍然得到error: package jakarta.xml.bind.annotation does not exist

java ant osgi jaxb jakarta-ee

8
推荐指数
0
解决办法
5629
查看次数

JVM 如何“抛出”异常

我知道 JVM 有一个异常表,用于映射可以在给定字节码索引中抛出的可能异常。我还读到 athrow 字节码会抛出堆栈顶部的引用类型异常。我的问题更多地与 irem 等指令如何“抛出”异常有关。

JVM 是否在每条指令执行后检查栈顶以检查是否有异常?非常感谢您对引擎盖下正在发生的任何见解。

java exception jakarta-ee

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

CDI 容器如何适应 Java EE 服务器的 EJB/Web 容器?

Java EE 服务器具有不同的容器,如 EJB 或 Web 容器: 在此处输入图片说明

但是,我发现有关如何集成 CDI 组件的不同信息。在文学中,有人谈到 CDI 容器(“ CDI 容器为您自动管理范围内的所有 bean ”),但其他人将其定义为 Java EE 容器提供的上下文服务。在 stackoverflow 上,甚至还有一个名为“IOC-Container”的标签。那么,如果它是一个容器,它是 EJB/Web 容器的容器部分/内部吗?

因此,如果我绘制 Java EE 服务器及其组件和容器的图片(如上图所示),CDI 是如何适应的?它有自己的容器“矩形”还是某些 EJB/Web 容器的一部分?你会如何在建筑设计中绘制它,你会如何解释/描述它?

ioc-container cdi jakarta-ee

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

从过滤器访问 servlet 注释

我需要一个过滤器,它在每个 servlet 之前被调用,并检查该 servlet 是否有说明它需要身份验证的注释,例如@ServletSecurity(@HttpConstraint(rolesAllowed={"user"}))在 Servlet 3 中。如果不是这种情况,则过滤器将返回。如果 servlet 需要身份验证,它将检查请求令牌是否具有user角色,如果没有,它将自动设置NOT_AUTHENTICATED响应,甚至不通过 servlet。

这项工作必须由过滤器完成,因为我需要验证请求中的 JWT 令牌并将解码的 JWT 添加到请求中,以便 servlet 可以使用它的有效负载。

如何从过滤器中检查 servlet 注释?在这种情况下,我可以像@RequiresAuth在 servlet 中一样创建一个更简单的注释吗?因为我不需要这个项目中的角色。

是否可以在不通过 servlet 的情况下从过滤器向客户端返回未经身份验证的响应?

是否可以以编程方式将过滤器设置为第一个过滤器?

这就是我使用 Jersey 解决它的方法,但我需要一个仅使用 servlet 的解决方案:

@Priority(Priorities.AUTHENTICATION)
public class AuthenticationFilter implements ContainerRequestFilter {

    @Context
    private ResourceInfo resourceInfo;

    @Override
    public void filter(ContainerRequestContext context) {
        final Method method = resourceInfo.getResourceMethod();

        if (method.isAnnotationPresent(PermitAll.class)) return;
        if (method.isAnnotationPresent(DenyAll.class)) {
            context.abortWith(Response.status(Response.Status.FORBIDDEN).build());
            return;
        }

        final RolesAllowed rolesAnnotation = method.getAnnotation(RolesAllowed.class);
        if (rolesAnnotation == null) …
Run Code Online (Sandbox Code Playgroud)

java servlets jakarta-ee

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

CDI.current().select().get() 和 BeanManager.getReference() 在功能上是否相同?

在 JEE/CDI 的上下文中,当我需要从方法中静态检索 CDI 托管 bean 时,我发现自己通常使用 CDI 静态函数。例如:

MyBean myBean = CDI.current().select( MyBean.class ).get()
Run Code Online (Sandbox Code Playgroud)

但是,据我所知,实现此目的的另一种等效方法是使用 BeanManager:

BeanManger bm = new InitialContext().lookup( "java:comp/BeanManager" );
Bean<?> bean = bm.resolve(bm.getBeans( MyBean.class ) );
CreationalContext<?> context = bm.createCreationalContext(bean);
MyBean myBean = bm.getReference(bean, cls, context);
Run Code Online (Sandbox Code Playgroud)

那么除了使用该CDI.current()方法编写的代码显着减少之外,使用它还有什么区别?似乎恢复使用BeanManager是一种更复杂(并且可能容易出错?)的方法。从功能的角度来看,使用该CDI.current()方法有什么缺点吗?是否CDI...select()只有一个工作@ApplicationScope豆?或者我也可以与其他作用域 bean(例如:)一起使用@Dependent吗?

我记得使用 CDI 方法阅读了一些关于潜在内存泄漏的内容,但不明白如何或为什么会出现这种情况。

java cdi jakarta-ee

7
推荐指数
2
解决办法
3886
查看次数

Swagger 2.x JaxrsAnnotationScanner 找不到位于 ear 中的资源类

我目前正在尝试使用 swagger 核心来记录现有的 API。我使用swagger core 2.7和resteasy 3,因为我在wildfly 10上部署。我有一个war,其中包含我的rest servlet和一些位于耳朵中的模型类,其中也包含war。模型类使用 @Schema 进行注释,因此需要依赖于 swagger-annotations。我跟着教程https://github.com/swagger-api/swagger-core/wiki/Swagger-2.X---Integration-and-configuration

所以我将依赖添加到我的战争的 pom.xml 和注释模块依赖添加到我的包含模型类的模块。它会编译和部署,但是当我浏览到 /myapp/openapi.yaml 时,我会在 Wildfly 控制台中看到我在 web.xml 中定义的每个资源的以下警告(战争中包含的资源除外)

12:52:22,058 警告 [io.swagger.v3.jaxrs2.integration.JaxrsAnnotationScanner](默认任务 5)从资源类加载类时出错:at.prismasolutions.test.render.RPlotFormatParam 来自 [Module "deployment.rserve-test. ear.at.prismasolutions.test.rserve.web-0.0.1-wildfly-SNAPSHOT.war:main”来自服务模块加载器]:java.lang.ClassNotFoundException:at.prismasolutions.test.render.RPlotFormatParam来自[模块“部署.rserve-test.ear.at.prismasolutions.test.rserve.web-0.0.1-wildfly-SNAPSHOT.war:main" from Service Module Loader] at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:198 ) 在 org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:363) 在 org.jboss.modules.ConcurrentClassLoader。performLoadClass(ConcurrentClassLoader.java:351) at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:93) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java: 264) 在 io.swagger.v3.jaxrs2.integration.JaxrsAnnotationScanner.classes(JaxrsAnnotationScanner.java:68) 在 io.swagger.v3.oas.integration.GenericOpenApiContext.read(GenericOpenApiContext.java:470) 在 io.swagger.v3 .jaxrs2.integration.resources.BaseOpenApiResource.getOpenApi(BaseOpenApiResource.java:49) 在 io.swagger.v3.jaxrs2.integration.resources.OpenApiResource.getOpenApi(OpenApiResource.java:32) 在 io.swagger.v3.jaxrs2.integration .resources.OpenApiResource$Proxy$_$$_WeldClientProxy.getOpenApi(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun。reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.jboss.resteasy .core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:139) at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:295) at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(:ResourceMethodInvoker.java) ) 在 …

resteasy swagger wildfly jakarta-ee

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

几个 java 'activation' 库定义了重叠的类。使用哪一种?

我正在使用相当标准的 Java 库(例如 Spring)的最新稳定版本,但从 maven shade 插件中收到关于定义相同类的三个不同库的“重叠类”警告。

库:jakarta.activation-api, javax.activation-api, activation.

具体来说:

  1. jakarta.activation:jakarta.activation-api:jar:1.2.2(依赖于jakarta.xml.bind:jakarta.xml.bind-api:jar:2.3.3
  2. javax.activation:javax.activation-api:jar:1.2.0( 的依赖javax.xml.bind:jaxb-api:jar:2.3.1,我认为这个应该换成jakarta.xml.bind-api,但不确定)
  3. javax.activation:activation:jar:1.1(依赖于com.sun.mail:javax.mail:jar:1.6.2

什么图书馆是“正确”的图书馆,会造成最少的麻烦?

更新:似乎jakarta.xml.bind-api替换了javax.xml.bind:jaxb-api(证明:herehere),因此在(1)和(2)之间的冲突中,jakarta one ( jakarta.activation-api) 应该优于 javax one ( javax.activation-api)。Jakarta 网站中描述首选的 JAXB 依赖项。但目前尚不清楚这与javax.activation:activation.

java jaxb maven jakarta-ee

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

标签 统计

jakarta-ee ×10

java ×7

cdi ×2

jaxb ×2

wildfly ×2

ant ×1

exception ×1

hibernate ×1

ioc-container ×1

jpa ×1

jpa-2.0 ×1

jpql ×1

jwt ×1

linux ×1

maven ×1

osgi ×1

resteasy ×1

servlets ×1

swagger ×1