我正在尝试将项目从 SpringCloud BOM 升级2020.0.1到2020.0.2
当我更改 BOM 并重新构建时,我在 JUnit 测试中收到一个错误,说spring.config.import没有为 configserver 设置新参数。
这个项目不是ConfigServer,也没有使用ConfigServer(评论配置客户端)
这是测试中报告的错误 contextLoads()
java.lang.IllegalStateException: Failed to load ApplicationContext
at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:132)
at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:124)
at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:118)
.. Many more
Caused by: org.springframework.cloud.config.client.ConfigServerConfigDataMissingEnvironmentPostProcessor$ImportException: No spring.config.import set
at org.springframework.cloud.config.client.ConfigServerConfigDataMissingEnvironmentPostProcessor.postProcessEnvironment(ConfigServerConfigDataMissingEnvironmentPostProcessor.java:60)
at org.springframework.boot.env.EnvironmentPostProcessorApplicationListener.onApplicationEnvironmentPreparedEvent(EnvironmentPostProcessorApplicationListener.java:100)
at org.springframework.boot.env.EnvironmentPostProcessorApplicationListener.onApplicationEvent(EnvironmentPostProcessorApplicationListener.java:86)
... Many more
Run Code Online (Sandbox Code Playgroud)
这是我的 build.gradle
plugins {
id 'org.springframework.boot' version '2.4.2'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}
group = 'com.example.microservices.composite.product'
version = '1.0.0-SNAPSHOT'
sourceCompatibility = '1.8'
repositories {
mavenCentral()
maven {
url 'https://repo.spring.io/milestone'
} …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个自动化脚本,用于在现有实例上创建 Azure SQL 数据库。
我知道我可以使用基于 CLI 的自动化,但我需要对创建内容和时间进行更多控制。
现在我停止了登录创建。我只想在不存在的情况下创建登录用户(如果存在则更改密码)。
这是我的代码:
IF NOT EXISTS (SELECT name FROM sys.sysusers WHERE name='$(dbUserName)')
BEGIN
CREATE LOGIN $(dbUserName) WITH PASSWORD='$(dbUserPassword)';
END
ELSE
BEGIN
ALTER LOGIN $(dbUserName) WITH PASSWORD='$(dbUserPassword)';
END
Run Code Online (Sandbox Code Playgroud)
我的问题是 sys.sysusers 视图检查数据库用户,而不是登录用户。我试图找到哪个系统目录视图包含登录用户,但我找不到(我也尝试过database_principals)
注意:我找到了几种本地 SQL Server 的替代方案,但它们不适用于 Azure SQL
我有一个直接从模板创建的 Blazor WebAssembly 应用程序,并且我添加了日志记录过程,如Blazor WebAssembly 日志记录中所述
我在我的类 Program 方法 Main 中添加了行 builder.Logging.SetMinimumLevel
public class Program
{
const string serverHttpClientName = "GoodSales.ServerAccessApi";
public static async Task Main(string[] args)
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
IConfiguration configuration = builder.Configuration;
// JMA: Configure logging
builder.Logging.SetMinimumLevel(LogLevel.Debug);
Run Code Online (Sandbox Code Playgroud)
注意:我没有添加特定的记录器,因为导航器控制台日志对我来说就足够了。
然后,我在我的剃刀组件中添加了日志记录
@using Microsoft.AspNetCore.SignalR.Client
@using GoodSales.Services
@inject NavigationManager NavigationManager
@using Microsoft.Extensions.Logging;
@inject ILogger<NavMenu> logger;
@inject ILoggerProvider LoggerProvider
Run Code Online (Sandbox Code Playgroud)
并在初始化方法中添加了测试线
protected override async Task OnInitializedAsync()
{
logger.LogDebug("LogDebug test");
logger.LogInformation("LogInformation test");
logger.LogWarning("LogWarning test");
Run Code Online (Sandbox Code Playgroud)
但是,在导航器控制台中,我只看到 LogInformation 和 LogWarning,但看不到 LogDebug。
我缺少什么?
我已将应用程序从 NetCore 3.1 和 Ubuntu 18.04 迁移到 Net5 和 Ubuntu 20.04。
当 HttpWebRequest 对象调用 GetResponse 方法时,应用程序开始失败。
我发现了来自 Microsoft 的通知,警告有关行为的重大变化,请参阅
https://medium.com/siberians-pro/how-to-use-tlsv1-on-ubuntu-20-04-133c2898ad7中有一篇非常有趣的文章(Linux 通用,与 Net5 无关)
但两者都不适合我。
到目前为止我已经尝试过的:
openssl_conf = openssl_init
[openssl_init]
ssl_conf = ssl_sect
[ssl_sect]
system_default = system_default_sect
[system_default_sect]
MinProtocol = TLSv1
CipherString = DEFAULT@SECLEVEL=1
Run Code Online (Sandbox Code Playgroud)
OPENSSL_CONF我已经导出了指向该文件的变量export OPENSSL_CONF=/var/www/spider/openssl.cnf
Run Code Online (Sandbox Code Playgroud)
dotnet Spider.dll
Run Code Online (Sandbox Code Playgroud)
fail: Spider.Program[0]
[19/12/2020 08:50:52.724]: Error getting response from https://www.boe.es/diario_boe/xml.php?id=BOE-S-20201216
System.Net.WebException: The SSL connection could not be established, see inner exception.
---> System.Net.Http.HttpRequestException: The SSL …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 MockMvc 做一个简单的测试类。但我陷入了一件非常简单的事情(但文档没有帮助)。
我的基本代码是
@SpringBootTest
@AutoConfigureMockMvc
class RecommendationServiceApplicationTests {
private static final Logger LOG = LoggerFactory.getLogger(RecommendationServiceApplicationTests.class);
private final String url = "/recommendation?productId=%d";
static final int PRODUCT_OK = 1;
static final int PRODUCT_KO = 0;
static final int PRODUCT_NOT_FOUND = 113;
@Autowired
private MockMvc mockMvc;
// Check OK response
@Test
public void getRecommendationsOK() throws Exception {
MockHttpServletRequestBuilder requestBuilder;
MvcResult result;
String contentResponse;
Recommendation[] recommendations;
requestBuilder=
MockMvcRequestBuilders
.get("/recommendation?productId=1")
.accept(MediaType.APPLICATION_JSON);
result = this.mockMvc
.perform(requestBuilder)
.andDo(MockMvcResultHandlers.print())
.andExpect(MockMvcResultMatchers.status().isOk())
.andReturn();
}
}
Run Code Online (Sandbox Code Playgroud)
这样,代码运行良好,但是当我尝试使用参数化查询时,我找不到方法
我已经尝试过(没有成功)
.get("/recommendation?productId=",PRODUCT_OK)
.get("/recommendation?productId={}",PRODUCT_OK) …Run Code Online (Sandbox Code Playgroud) spring-boot ×2
.net-5 ×1
asp.net-core ×1
azure ×1
logging ×1
mocking ×1
spring ×1
spring-cloud ×1
spring-test ×1
sql-server ×1
tls1.2 ×1
ubuntu-20.04 ×1