请问任何人,请解释两者之间的区别:评估规范与构建任何可用JSR流程实现的规范,例如,JSR 299.
有时这是有价值的信息来源,但对于我作为开发人员,我应该下载和阅读哪一个?令人烦恼的是 - 有时这两个是相同的.
有什么想法吗?
我正在考虑实现一个或两个JSR API.我还没有阅读整个规范(计划是在编写实现代码时阅读它们),但我对它们非常熟悉.我已经读过JSR过程包括实现测试兼容性工具包(TCK)来测试所述JSR实现.
在我开始编写一系列单元测试以验证我的实现的正确性/完整性之前,我真的想使用这个TCK,但我不知道它是否适用于我.下载所有文件并在google搜索后,我找不到任何可以定义为给定JSR的TCK的东西.
所以我的问题基本上是:为了生成我自己的JSR规范实现,我需要做哪些步骤,以及如何验证我确实已经这样做了.
对于它的价值,我正在考虑实施JSR-168和JSR-286,但我认为这与这个问题无关.
例如,我们在一些实体中有几个字段正在使用注释@Pattern进行验证.该实体在项目的任何地方都使用,但只在一个地方我们需要"关闭"此验证.
有没有办法以编程方式进行,或者这是不可能的?
编译java文件时在IntelliJ项目上出现此错误.没有列出特定的源文件,但它失败并出现此错误.
删除以下编译器标志可修复错误:
-source 1.5 -target 1.5
Run Code Online (Sandbox Code Playgroud)
但是,由于我们的目标是Java 5,因此需要将它们放在那里.是否存在try/catch导致此错误的特定代码(可能是块)?
2013-10-15 16:21:50,556 [26947209] INFO - ompiler.BackendCompilerWrapper - JSR/RET are not supported with computeFrames option
java.lang.RuntimeException: JSR/RET are not supported with computeFrames option
at org.objectweb.asm.Frame.a(Unknown Source)
at org.objectweb.asm.MethodWriter.visitJumpInsn(Unknown Source)
at org.objectweb.asm.MethodAdapter.visitJumpInsn(Unknown Source)
at org.objectweb.asm.ClassReader.accept(Unknown Source)
at org.objectweb.asm.ClassReader.accept(Unknown Source)
at com.intellij.compiler.impl.javaCompiler.BackendCompilerWrapper$ClassParsingThread.a(BackendCompilerWrapper.java:893)
at com.intellij.compiler.impl.javaCompiler.BackendCompilerWrapper$ClassParsingThread.run(BackendCompilerWrapper.java:846)
at com.intellij.openapi.application.impl.ApplicationImpl$7.run(ApplicationImpl.java:386)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:680)
at com.intellij.openapi.application.impl.ApplicationImpl$1$1.run(ApplicationImpl.java:130)
Run Code Online (Sandbox Code Playgroud) 在我的Spring Boot 1.5.1应用程序中,我正在尝试配置对JSR-303/JSR-349验证的支持.
我@NotNull @Size(min = 1)在我的方法中添加了以下注释:
@Service
@Transactional
public class DecisionDaoImpl extends BaseDao implements DecisionDao {
@Override
public Decision create(@NotNull @Size(min = 1) String name, String description, String url, String imageUrl, Decision parentDecision, Tenant tenant, User user) {
...
}
}
Run Code Online (Sandbox Code Playgroud)
我试图从我的测试中调用此方法,但它不会在验证约束上失败.
这是我的测试和配置:
@SpringBootTest(classes = { TestConfig.class, Neo4jTestConfig.class })
@RunWith(SpringRunner.class)
@Transactional
public class TenantTest {
@Test
public void testCreateDecision() {
User user1 = userService.createUser("test1", "test1", "test1@test.com", null, null);
Tenant tenant1 = tenantDao.create("Tenant 1", "Tenant 1 …Run Code Online (Sandbox Code Playgroud) 我想使用注释验证GET/POST请求 spring-boot 控制器类javax.validation-api。
对于类@Valid和@NotBlank该类的属性来说,工作完美。
以下内容按预期工作:
public class Registration {
@NotBlank
private String name;
}
public ResponseEntity registration(@Valid @RequestBody Registration registration) {}
Run Code Online (Sandbox Code Playgroud)
所以现在我只有一个字符串作为参数并想验证它。
这可能吗?
以下内容未按预期工作(不验证任何内容):
public ResponseEntity registration(@Valid @NotBlank String password) {}
Run Code Online (Sandbox Code Playgroud)
这似乎是一个简单的要求,但我在互联网或 Stackoverflow 上找不到任何内容。
为了复制,我创建了一个 MWE(java 10,gradle 项目):
启动项目后,localhost:8080/registration?test=使用 POST 进行调用,例如使用 Postman。@NotBlank参数“test”将为空,但将输入方法。
POST 调用按localhost:8080/container预期失败。
MweController.java
import javax.validation.constraints.*;
import org.springframework.http.*;
import org.springframework.web.bind.annotation.*;
@RestController
public class MweController {
@CrossOrigin(origins = "http://localhost:3000")
@PostMapping(value = "/registration")
public ResponseEntity …Run Code Online (Sandbox Code Playgroud) 我在Andriod系统中开发了两个基于Java A和B的项目,项目A中的代码依赖于项目B中的代码,项目B中的代码依赖于项目A中的代码.我可以使用Proguard混淆A而不是混淆B ,A和B也可以很好地工作?
我使用Spring引导1.5.2.RELEASE并不能纳入JSR - 349(Bean验证1.1),用于@RequestParam与@PathVariable在方法本身.
对于POST请求,如果方法参数是Java POJO,那么注释该参数与@Valid工作正常但注释@RequestParam和@PathVariable类似@NotEmpty,@Email不工作.
我有Spring的注释控制器类 @Validated
关于SO有很多问题,我对这个答案发表了评论,认为它不适用于我.
Spring Boot包括 - validation-api-1.1.0.Final.jar和hibernate-validator-5.3.4.Final.jar.
我错过了什么吗?
示例代码,
@RequestMapping(method = RequestMethod.GET, value = "/testValidated", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseBean<String> testValidated(@Email @NotEmpty @RequestParam("email") String email) {
ResponseBean<String> response = new ResponseBean<>();
response.setResponse(Constants.SUCCESS);
response.setMessage("testValidated");
logger.error("Validator Not called");
return response;
}
Run Code Online (Sandbox Code Playgroud)
下面的处理程序永远不会被调用当我发送空值或者没有良好形成的电子邮件地址时,email&control总是用in testValidated方法.
@ExceptionHandler(ConstraintViolationException.class)
@ResponseBody
@ResponseStatus(HttpStatus.BAD_REQUEST)
public ResponseBean handle(ConstraintViolationException exception) {
StringBuilder …Run Code Online (Sandbox Code Playgroud) 我们可以说Spring Batch是 JSR 352(Java 平台批处理应用程序规范)的实现吗?
JSR 352 还有哪些其他实现?
jsr ×10
java ×8
spring-boot ×3
validation ×2
android ×1
javabeans ×1
jetty ×1
jetty-9 ×1
jsr168 ×1
jsr352 ×1
portlet ×1
proguard ×1
spring ×1
spring-batch ×1
spring-mvc ×1
websocket ×1