编辑:我正在使用 Swagger UI 2.5.0 并尝试将其配置为使用 oauth 身份验证。根据我从宠物商店示例和我读过的其他文章中了解到的情况,如果我在我的文档中包含安全模式和上下文,它应该自动显示按钮 - 是这种情况吗?如果是这样,我还缺少什么?
我的 API 在 swagger UI 中显示正常 - 只是缺少授权按钮(以及任何授权方式)
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.groupName("api")
.select()
.apis(RequestHandlerSelectors.basePackage("com.example"))
.paths(PathSelectors.regex("/api.*"))
.build()
.securitySchemes(newArrayList(securitySchema()))
.securityContexts(newArrayList(securityContext()));
}
public static final String securitySchemaOAuth2 = "oauth2schema";
public static final String authorizationScopeGlobal = "global";
public static final String authorizationScopeGlobalDesc ="accessEverything";
private OAuth securitySchema() {
AuthorizationScope authorizationScope = new AuthorizationScope(authorizationScopeGlobal, authorizationScopeGlobal);
LoginEndpoint loginEndpoint = new LoginEndpoint("http://localhost:9999/sso/login");
GrantType grantType = new ImplicitGrant(loginEndpoint, "access_token"); …Run Code Online (Sandbox Code Playgroud) 我正在尝试删除一个方法调用,例如
when(amazonDynamoDBClient.batchWriteItem(anyObject())).thenReturn(batchWriteItemResultMock);
Run Code Online (Sandbox Code Playgroud)
我收到这个错误
错误:(198,34)java:对batchWriteItem的引用不明确com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient方法batchWriteItem(com.amazonaws.services.dynamodbv2.model.BatchWriteItemRequest)和方法batchWriteItem(java.util.Map> )在com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient匹配中
我看不出这是多么模糊 - 方法签名是不同的,即
public BatchWriteItemResult batchWriteItem(BatchWriteItemRequest request) {
Run Code Online (Sandbox Code Playgroud)
和
public BatchWriteItemResult batchWriteItem(Map<String, List<WriteRequest>> requestItems) {
Run Code Online (Sandbox Code Playgroud)
我在这做错了什么?
可以注释String字段,因此 Lombok 生成一个 equals 方法,该方法忽略值的字符大小写String。
也就是说,生成如下内容:
public class Foo {
private String bar;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Foo foo = (Foo) o;
return bar != null ? StringUtils.equalsIgnoreCase(bar, foo.bar) : foo.bar == null;
}
}
Run Code Online (Sandbox Code Playgroud) 我正在使用 liquibase 在我的 springboot 应用程序中初始化我的数据库,它工作正常,直到我重新启动 - 数据库重新初始化并擦除所有数据。
这是我的应用程序属性
# Liquibase
liquibase.change-log=classpath:/db/changelog/iot-db.xml
liquibase.check-change-log-location=true
# Hibernate
hibernate.dialect=org.hibernate.dialect.HSQLDialect
hibernate.show_sql=false
hibernate.hbm2ddl.auto=
entitymanager.packagesToScan=com.whatever
Run Code Online (Sandbox Code Playgroud)
是否有属性允许我创建持久数据库而不是内存数据库?
自从更新到最新版本的Spring-Boot(1.4.1)后,我注意到在我的RestControllers中,即使我明确地将生成的媒体类型设置为"application/json",它现在正在生成"application/json; charset = UTF-8"
控制器:
@RestController
@RequestMapping(value = "/api/1/accounts", consumes = "application/json", produces = "application/json")
public class AccountController {
.....
Run Code Online (Sandbox Code Playgroud)
响应标题
Content-Type ?application/json;charset=UTF-8
Run Code Online (Sandbox Code Playgroud)
现在是否在其他地方配置了覆盖RequestMapping设置?
当测试唯一约束时,我已将其添加到表中,但它被遵守,但不是约束异常或类似的情况,当我尝试创建另一个打破约束的实体时,我得到一个 NullPointerException,这似乎不对
org.springframework.orm.jpa.JpaSystemException: could not execute statement; nested exception is org.hibernate.exception.GenericJDBCException: could not execute statement
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:333)
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:244)
at org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:521)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:761)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:730)
at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:487)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:291)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:655)
at com.example.FooDao$$EnhancerBySpringCGLIB$$e47b8667.create(<generated>)
at com.example.FooDaoTest.shouldHaveUniqueConstraintOnPrimaryAndSecondaryCodes(FooDaoTest.java:107)
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:483)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75)
at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)
at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:252)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) …Run Code Online (Sandbox Code Playgroud) java ×6
hsqldb ×2
liquibase ×2
spring ×2
spring-boot ×2
hibernate ×1
jpa ×1
junit ×1
lombok ×1
mockito ×1
spring-mvc ×1
swagger-ui ×1