我创建了一个 FeignClient 并添加了 ConditionalOnExpression,但是添加 ConditionalOnExpression 后,FeignClient 未加载,并抱怨没有 MyFeignClient 类型的合格 bean。如果我删除 ConditionalOnExpression,并且 ConditionalOnExpression 在其他组件中返回 true,则它工作正常。
@ConditionalOnExpression("'${com.service}'.contains('MANISH')")
@FeignClient(name = "client", url = "${com.api-url}}")
public interface RacingMeetingFeignClient {
@RequestMapping(method = RequestMethod.GET, value = "${com.my-endpoint")
String getRestResult();
}
Run Code Online (Sandbox Code Playgroud) 我们有类似的东西Integer.MAX_VALUE要在application.properties? 我们可以使用 做类似的事情@ConfigurationProperties,但我一直在寻找 Spring 中的一个选项application.properties。
@ClassRule
public static WireMockRule wireMockRule = new WireMockRule(9898);
@Test
public void createXmlFile() {
stubFor(get(urlPathEqualTo("/data/racing/"))
.willReturn(aResponse()
.withBody(loadJSONFile("unibet-demo-input.json"))));
}
Run Code Online (Sandbox Code Playgroud)
我不知道这里出了什么问题!
2019-01-16 15:54:05.810 [qtp1929284175-20] INFO ROOT:2341 - RequestHandlerClass from context returned com.github.tomakehurst.wiremock.http.StubRequestHandler. Normalized mapped under returned 'null'
2019-01-16 15:54:05.822 [qtp1929284175-15] INFO __admin:2341 - RequestHandlerClass from context returned com.github.tomakehurst.wiremock.http.AdminRequestHandler. Normalized mapped under returned 'null'
2019-01-16 15:54:05.925 [qtp1929284175-20] ERROR WireMock:40 - Request was not matched as there were no stubs registered:
{
"url" : "/data/racing/",
"absoluteUrl" : "http://localhost:9898/data/racing/",
"method" : "GET",
"clientIp" : "127.0.0.1",
"headers" …Run Code Online (Sandbox Code Playgroud) 我正在编写一组集成测试,每个测试类启动服务器并停止服务器,这需要很长时间。是否可以创建一个测试套件,其中单个服务器实例可用于一组测试类?
谢谢,曼尼什
弹簧数据findBy方法的可能返回类型是什么?我在任何地方都找不到任何合并列表。
像findByXXX可以返回
1) Entity
2) Optional<Entity>
3) List<Entity>
4) Stream<Entity>
Run Code Online (Sandbox Code Playgroud)
还有更多,但是我们有一个确定的清单吗?
另外,List<Entity>如果找不到数据,则返回emptyList,但是Stream<Entity>如果找不到数据,则返回null,因此在流上应用map / filter等时,会得到NPE。
除了在调用流函数之前物理检查null之外,是否有更好的方法使用Stream而不引起NPE。
我正在尝试在 Spring Boot 应用程序中使用 kafka 侦听器,但服务器启动失败并出现以下错误:根本原因是它正在org.springframework.kafka.listener.config子包中寻找可用的 ContainerPropertiesorg.springframework.kafka.listener
***************************
APPLICATION FAILED TO START
***************************
Description:
An attempt was made to call the method org.springframework.kafka.listener.AbstractMessageListenerContainer.getContainerProperties()Lorg/springframework/kafka/listener/config/ContainerProperties; but it does not exist. Its class, org.springframework.kafka.listener.AbstractMessageListenerContainer, is available from the following locations:
jar:file:/Users/kumarman/.m2/repository/org/springframework/kafka/spring-kafka/2.2.0.RELEASE/spring-kafka-2.2.0.RELEASE.jar!/org/springframework/kafka/listener/AbstractMessageListenerContainer.class
It was loaded from the following location:
file:/Users/kumarman/.m2/repository/org/springframework/kafka/spring-kafka/2.2.0.RELEASE/spring-kafka-2.2.0.RELEASE.jar
Action:
Correct the classpath of your application so that it contains a single, compatible version of org.springframework.kafka.listener.AbstractMessageListenerContainer
Run Code Online (Sandbox Code Playgroud)
我的依赖图是:
lon2002619:wmt-service kumarman$ mvn dependency:tree | grep kafka
[INFO] +- org.springframework.kafka:spring-kafka:jar:2.2.0.RELEASE:compile
[INFO] | \- …Run Code Online (Sandbox Code Playgroud) 我想在Spring启动应用程序中访问配置中的事务管理器和数据源.我正在使用spring-boot-starter-data-jpa神器.
是否可以在配置中自动装配并获取其访问权限?
我试图用下面的代码听新创建的主题,但是没有用.如果下面的代码是正确的,你能告诉我吗?
public class KafkaMessageListener {
private static final Logger LOGGER = LoggerFactory.getLogger(KafkaMessageListener.class);
private final ProcessEventModel eventModel;
@KafkaListener(topicPattern = "betsyncDataTopic*")
public void receive(ConsumerRecord<String, String> consumerRecord) {
LOGGER.info("received payload at '{}'", consumerRecord.timestamp());
eventModel.process(consumerRecord.value());
}
Run Code Online (Sandbox Code Playgroud) 我的生产代码工作正常,但我的集成测试是为SecurityProtocol抛出ClassNotFoundException.我使用的是spring-boot-parent 1.5.10.RELEASE.
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
<version>1.3.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka-test</artifactId>
<version>1.3.3.RELEASE</version>
<scope>test</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我得到以下例外:
java.lang.NoClassDefFoundError: org/apache/kafka/common/security/auth/SecurityProtocol
at kafka.server.KafkaConfig$.<init>(KafkaConfig.scala:578)
at kafka.server.KafkaConfig$.<clinit>(KafkaConfig.scala)
at kafka.utils.TestUtils$.createBrokerConfig(TestUtils.scala:228)
at kafka.utils.TestUtils.createBrokerConfig(TestUtils.scala)
at org.springframework.kafka.test.rule.KafkaEmbedded.createProperties(KafkaEmbedded.java:214)
at org.springframework.kafka.test.rule.KafkaEmbedded.before(KafkaEmbedded.java:191)
at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:46)
at org.junit.rules.RunRules.evaluate(RunRules.java:20)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Caused by: java.lang.ClassNotFoundException: org.apache.kafka.common.security.auth.SecurityProtocol
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 15 more
Run Code Online (Sandbox Code Playgroud)
当我使用这个pom时,我得到一个不同的错误:
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka-test</artifactId>
<scope>test</scope>
</dependency>
java.lang.NoClassDefFoundError: kafka/utils/Time
at com.betstars.eventdata.app.kafka.message.KafkaMessageSenderTest.<clinit>(KafkaMessageSenderTest.java:39)
at sun.misc.Unsafe.ensureClassInitialized(Native Method)
at sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:43) …Run Code Online (Sandbox Code Playgroud) 当我试图启动我的intelliJ时,它在我的Windows 7中给出了以下错误:
内部错误.请报告http://jb.gg/ide/critical-startup-errors
java.lang.RuntimeException: java.lang.IllegalStateException: @NotNull method com/intellij/openapi/progress/ProgressManager.getInstance must not return null
at com.intellij.idea.IdeaApplication.run(IdeaApplication.java:201)
at com.intellij.idea.MainImpl$1$1$1.run(MainImpl.java:63)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:744)
at java.awt.EventQueue.access$400(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:697)
at java.awt.EventQueue$3.run(EventQueue.java:691)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:714)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:360)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.lang.IllegalStateException: @NotNull method com/intellij/openapi/progress/ProgressManager.getInstance must not return null
at com.intellij.openapi.progress.ProgressManager.getInstance(ProgressManager.java:35)
at com.intellij.openapi.application.impl.ApplicationImpl.createComponents(ApplicationImpl.java:505)
at com.intellij.openapi.components.impl.ComponentManagerImpl.init(ComponentManagerImpl.java:107)
at com.intellij.openapi.application.impl.ApplicationImpl.load(ApplicationImpl.java:454)
at com.intellij.openapi.application.impl.ApplicationImpl.load(ApplicationImpl.java:446)
at com.intellij.idea.IdeaApplication.run(IdeaApplication.java:194)
... 16 more
Run Code Online (Sandbox Code Playgroud) 每当我的控制器抛出异常时,它都不会以 json 格式返回响应。
它给出了白标错误页面
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Run Code Online (Sandbox Code Playgroud)
我的控制器是:
@RequestMapping(value = GENERATE_IMAGE, method = RequestMethod.GET, produces = MediaType.IMAGE_PNG_VALUE)
public byte[] get(@PathVariable("input") String input) throws IOException {
if (true) {
throw new BusinessValidationFailureException("sdfsdfsd");
}
ByteArrayInputStream inputStream = service.generate(input);
return ByteStreams.toByteArray(inputStream);
}
Run Code Online (Sandbox Code Playgroud)
我的控制器建议是:
@ControllerAdvice
public class WickesGlobalExceptionMapper extends ResponseEntityExceptionHandler {
@ExceptionHandler(BusinessValidationFailureException.class)
@ResponseBody
public ResponseEntity handleBusinessException(BusinessValidationFailureException ex, WebRequest request) {
ErrorResource error = new ErrorResource("InvalidRequest", ex.getMessage(), null);
HttpHeaders headers = new …Run Code Online (Sandbox Code Playgroud) java ×8
spring ×7
spring-boot ×5
spring-kafka ×3
apache-kafka ×1
intellij-15 ×1
spring-cloud ×1
spring-data ×1
spring-test ×1
wiremock ×1