问题标签 [java-ee-8]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
20 浏览

ejb - 在 @Stateful 的情况下,EJB 容器如何区分一个客户端和另一个客户端

鉴于@SessionScoped CDI bean ,我试图了解@Stateful bean 可以做什么。我创建了这个 JAX-RS 资源:

只是为了了解有状态 bean 的行为。但是,每次我调用/counter端点时,我总是会得到一个新鲜的statefulCounter. 我只想知道 EJB 容器返回以前使用的相同有状态对象的标准是什么;因为它是有状态的,所以必须有一种方法来获取相同的旧对象。

0 投票
0 回答
1251 浏览

spring-boot - SqlResultSetMapping 未知映射错误

我正在开发一个 Spring Boot Rest API,我之前问了一个关于将 pojo 类映射到结果集 问题

我得到的答案很有效,但是当我只使用一个实体类和一个 SqlResultSetMapping 文件时。

我的堆栈跟踪:

我的会员实体:

我的用户实体:

我的 MemberServiceImpl:

我的 UserServiceImpl:

我的问题是

我有几个实体,例如成员、用户、课程,并且我为每个类设计了一个 SqlResultSetMapping 文件。但是当我测试我的 API 只有成员类得到正确的响应和映射时,用户实体服务实现返回未知的 SqlResultSetMapping [UserMapping] ...

0 投票
1 回答
385 浏览

java - Feign抛出错误而不是返回ResponseEntity,如何回到调用者方法

我想了解如何处理以下内容,

我有一个需要获取产品的微服务:

我的假装课:

还有我的 CustomErrorDecoder:

我想了解的是,如何回到调用者方法做这样的事情:

目前,我发现的唯一方法是这样做:

但我想处理一种错误并继续调用者方法的过程。

我该如何处理?

谢谢 !

0 投票
2 回答
337 浏览

java - 如何在带有参数的for循环中注入bean

我可以在 for 循环中注入带有参数的 Bean 吗?我不想TheService在以下示例中手动初始化:

例如,运行时是否可以将值从 for 循环注入到生产者的方法并使用 CDI 注入服务?我知道,不能注入 String 和原始值,但也许你可以帮助我并提出一些解决方案。

更新: 有其他带有注释的TheService字段。@Inject

0 投票
1 回答
165 浏览

junit - 在单元测试期间访问 webapp 文件夹中的文件

我在 StackOverflow 上看到了这个问题的几个变体,但没有一个能准确描述我的场景,也没有提供适合我的解决方案。

我正在构建一个 Java EE 网页游戏。我在构建过程中使用 JUnit 进行单元测试。在我的 webapp 文件夹中,我有用户通过 HTTP GET 请求访问的资产。在我的源代码中,我有相应的 Java 类来实现这些资产的逻辑。

例如,我有一个名为 CookingPot 的类,它在我的游戏中实现了烹饪锅的逻辑。在 webapp 文件夹中,我有一个文件为用户提供烹饪锅的媒体和内容,例如:

在单元测试期间,我想确保对于每个游戏项目(在本例中为 CookingPot 项目),在 webapp 文件夹中的正确位置都有一个 SVG 和 HTML 文件。

我该如何实施这个测试?JUnit 测试在 Maven 构建环境中执行,该环境不提供 Tomcat 服务器进行测试,因此无法通过 HTTP 访问它们。我试过了:

但是那些返回null。

我有一种感觉,我在这里缺少一些简单的东西,但我不知道它是什么。当然必须有一种方法来测试这些文件在构建过程中是否存在?

提前感谢您的帮助!

0 投票
1 回答
44 浏览

java - Java EE Rest Webservice PathParam 始终为 0

我创建了一个 Rest Web 服务。当我想更新具有特定 id 的实体时,PathParam 始终为 0。

网址:http://localhost:8080/example.rs.jax-master/rest/accounts/account/1000

0 投票
2 回答
843 浏览

java - 在 JAX-RS 中使用 Json:禁止空值

我正在编写一个简单的 REST 服务,它需要一个包含 Json 的 POST。该服务应该拒绝任何不包含它所期望的密钥的 Json。我在 JBoss EAP 7.1 上使用 JAX-RS,但无法做到这一点。代码示例:

以前我写consumeJson期望期望 aJsonObject并使用 Jackson 解析它ObjectMapper。这样做会导致在接收 Json 缺失键时出错。我认为我现在这样做的方式是一种“更清洁”的方式,因为现在参数列表清楚地显示了 Json 应该描述的对象类型。但是,我不想首先检查方法中的每个字段,也不想向isValid()以这种方式获得的每个对象添加方法。

该示例{"first" : "contentOfFirst"}返回"contentOfFirst, null"而不是失败。

编辑:为了澄清,我尝试了这样的事情:

这并没有改变结果,而不是失败(如预期的那样) POST 仍然得到了 response "contentOfFirst, null"。我知道这些注释仍然需要一个验证器来验证它们。我(错误地?)认为 Jboss 提供了这样一个验证器。

0 投票
1 回答
232 浏览

interceptor - JEE:如何拦截@PostCostruct 方法?

我有一个豆子:

  • void initialize()用 注释的方法@PostConstruct
  • void release()用 注释的方法@PreDestroy
  • 其他一些方法。
  • 此外,该 bean 具有@Interceptors定义一些拦截器的注释。

其中一个拦截器具有注释的方法

  • @AroundConstruct
  • @AroundInvoke
  • @AroundTimeout
  • @PostConstruct
  • @PreDestroy

在这些方法中的每一个中,我都添加了一些日志记录,因此我可以查看调用了哪些拦截器方法以及何时调用了拦截器方法。调用顺序如下所示:

  • 输入拦截器的@AroundConstruct方法。InvocationContext:目标是null,方法是null,构造函数已设置。
  • 调用 Beans 构造函数。
  • 该调用通过 Interceptor 的@AroundConstruct方法存在。InvocationContext:Target 是 bean 实例,method 是null,构造函数是 set。
  • 拦截器的@PostConstruct方法被调用,调用proceed()并返回。InvocationContext:Target 是 bean 实例,method 是null,构造函数是 set。
  • 在上一次调用完全返回之后,调用 bean 的@PostConstruct方法。

我很惊讶地意识到,@PostConstruct不是在 bean 的@PostConstruct方法调用期间调用,而是在 bean 的构造和调用 bean 的@PostConstruct方法之间调用。此外,bean@PostConstruct方法的调用根本不会被拦截,不会被拦截器的@PostConstruct方法或bi它的@AroundInvoke方法拦截。

我/我的程序方面有什么错误吗?

有没有办法拦截bean的@PostConstruct方法(方法也是如此@PreDestroy)?

我需要准备上下文并用一些内容填充它们。此外,稍后调用堆栈深处的其他方法也可以知道调用是由容器通过这两种方法之一触发的。

0 投票
1 回答
71 浏览

servlets - 我想将 CDI 与 Java SE 12 一起使用,但启动失败(主类、JBoss 或 Payara,都是相同的错误)

我完全卡住了。我想将 CDI2 与 Servlet 一起使用来编写一个简单的 Web 应用程序。但是,bean 没有被加载。

我在 JBoss 或 Payara 或 Weld 中收到以下错误(如果作为主应用程序运行):

是否有人仍在使用 CDI2 或有一个正在运行的现代示例?

我用maven编译。

热烈的问候,亚历克斯

0 投票
0 回答
37 浏览

java - 使用 IntelliJ IDEA 启动一个新的 Web 应用程序项目

我正在使用最新版本的 IntelliJ IDEA。我的第一个项目很顺利。我能够使用一些参数创建一个简单的 hello world。现在,我决定创建一个新项目来测试 JAX-RS 和一些 JSP。在我的 TomEE 服务器上一切正常。

不过,我目前面临的问题真的很奇怪。request.getParameter()不再认可和类似的元素。我比较了旧项目和新项目,发现新项目缺少包含javax*文件的 libs 文件夹。

我不知道为什么 IntelliJ 不再将 libs 文件生成到新项目中。如果有人可以分享任何有用的信息,我将不胜感激。