我曾经lombok.@UtilityClass
:
并且 Jacoco 不涵盖 Lombok 生成的代码。如果我显式定义一个私有构造函数,Jacoco 可以识别它。
那么,有什么方法可以避免由于使用而导致的覆盖损失@UtilityClass
呢?
I want to createNewFile
with a path but I got an IOException. The question is, the detailed message cannot be interpreted, I can only see a bunch of question marks.
I am with Windows 10 originally in Spanish, but with Chinese language pack installed. The java language already set to en
and file encoding UTF-8
:
java -version
Picked up _JAVA_OPTIONS: -Duser.country=US -Duser.language=en -Dfile.encoding=UTF-8
openjdk version "11" 2018-09-25
OpenJDK Runtime Environment 18.9 (build 11+28)
OpenJDK 64-Bit Server VM 18.9 (build …
Run Code Online (Sandbox Code Playgroud) 此问题最初由我在Microsoft社区发布:
总结:我在Windows 10中使用Microsoft Keyboard Layout Creator 1.4创建了一个自定义键盘布局,但它只能部分工作.这不可以:
将两个击键组合成一个以键入"组合字母",例如"¨"+"u"="ü".它不应该用中文存在,但我想实现这一目标.
键入中文拼音和中文标点符号.在MS拼音IME中,我可以按shift切换中文拼音模式和英文模式.在拼音模式下,我可以将字母转换为拼音,从而获得汉字,但我的布局缺乏这个.而且,如果我在拼音模式下按"拼音"中的","它应该给我","(全长逗号),但这种布局无法做到这一点.
我正在考虑两种方法来解决这个问题:
将Microsoft拼音的键盘布局替换为我的布局(用我的布局替换MS拼音的英文部分)
将MS拼音的拼音部分复制到我的布局.
那么,我该如何解决这个问题呢?
我想将 Java 8 Spring Boot 项目升级到 Java 11。它使用 Gradle 4.9(包装器)。我正在使用 Intellij 2019.1 社区版。
下载 Java 11 后,当我运行时gradle test
,我看到此错误:
-Djava.endorsed.dirs ..... 不受支持。模块化形式的认可标准和独立 API 将通过可升级模块的概念得到支持。
那么,我该如何解决这个问题?
我正在开发一个Java Swing项目,我必须开发一个列出证书的功能,供用户选择通过SSL对服务器进行身份验证.
这些证书必须包含Firefox中用户导入的证书,如果插入了智能卡,也会列出卡中的智能卡.环境是Linux/MacOS.在Windows中,Internet Explorer处理所有这些,我们希望实现的与Windows中发生的情况非常相似:列出所有证书以及卡中的证书,供用户选择.
在Ubuntu中使用Mozilla的NSS(网络安全服务)时,我发现我迷路了.由于没有在Java中使用JSS的代码示例,我只能部分地使用它,具体取决于我为提供程序加载配置文件的方式.
我现在做的是:
在firefox中读取证书(使用KeyStore
,Provider
并将KeyStore.Builder
其softokn.so
作为库加载).
从卡中加载证书CryptoManager
并获取其所有模块.(CryptoManager.initialize(profileDir)
,cm.getModules()
,module.getTokens()
等)
如果我加载提供程序libsoftoken3.so
,我可以看到用户证书.但是,当我CryptoManager
在构建之后初始化时provider
,外部模块(例如,我的智能卡)未列入cryptoManager.getModules()
.
config = "library=" + NSS_JSS_Utils.NSS_LIB_DIR + "/libsoftokn3.so\n"
+ "name=\"Soft Token\"\n"
+ "slot=2\n" //for softoken, can only be 2.
+ "attributes=compatibility\n"
+ "allowSingleThreadedModules=true\n"
+ "showInfo=true\n"
+ "nssArgs=\"configdir='" + NSS_JSS_Utils.getFireFoxProfilePath() + "' "
+ "certPrefix='' "
+ "keyPrefix='' "
+ "secmod='secmod.db' "
+ "flags='readOnly'\""
// …
Run Code Online (Sandbox Code Playgroud) 我在Spring应用程序中进行了一个简单的测试,其默认时区设置为UTC
:
@SpringBootApplication
public class MemberIntegrationApp {
@Autowired
private TimeZoneProperties timeZoneProperties;
@PostConstruct
void started() {
TimeZone.setDefault(TimeZone.getTimeZone(timeZoneProperties.getAppDefault())); // which is UTC
}
public static void main(String[] args) {
SpringApplication.run(MemberIntegrationApp.class, args);
}
}
Run Code Online (Sandbox Code Playgroud)
并且,这个简单的测试:( 测试类注释@SpringBootTest
用于在主类中加载配置并且@SpringRunner
也被应用)
/**
* Test the effect of setting timezone
*/
@Test
public void testTimezoneSettingOnSimpleDateFormat() throws ParseException {
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String d = "2018-08-08 12:34:56";
log.info("Trying to parse the date string: {}", d);
Date result = f.parse(d);
log.info("The result …
Run Code Online (Sandbox Code Playgroud) 使用 Spring Boot 和 Jackson,如何直接在外层将包装/内部列表反序列化为列表?
例如,我有:
{
"transaction": {
"items": {
"item": [
{
"itemNumber": "193487654",
"itemDescription": "Widget",
"itemPrice": "599.00",
"itemQuantity": "1",
"itemBrandName": "ACME",
"itemCategory": "Electronics",
"itemTax": "12.95"
},
{
"itemNumber": "193487654",
"itemDescription": "Widget",
"itemPrice": "599.00",
"itemQuantity": "1",
"itemBrandName": "ACME",
"itemCategory": "Electronics",
"itemTax": "12.95"
}
]
},
...
}
}
Run Code Online (Sandbox Code Playgroud)
在 JSON 下,item
是一个列表items
;但我想将它解析为一个名为 的列表items
,直接位于 之下transaction
,而不是定义一个Items
包含名为item
.
这可能吗?如何定义这个 DTO Item
?
public class TrasactionDTO {
private List<Item> items;
...
} …
Run Code Online (Sandbox Code Playgroud) 在我们应用程序的 Kibana 中,我不断看到以下日志行org.springframework.web.reactive.function.client.ExchangeFunctions
:
[2f5e234b] Cancel signal (to close connection)
Run Code Online (Sandbox Code Playgroud)
线程是reactor-http-epoll-1
这样的。
它可能在两种情况下发生:
这可能是什么原因造成的?客户端主动掉线还是服务器主动拒绝?
第二种情况是超时吗?但TimeoutException()
之后不会被抛出。
我现在doOnCancel()
在 WebClient 中进行日志记录来处理第二种情况,但后来我注意到存在情况 1,并且这种doOnCancel()
处理不再有意义,因为它似乎在所有情况下都会发生。
我jasypt 1.9.2
在Windows 7 x64中使用cmd
。这里的encrypt.bat
内容:
ECHO ON
set SCRIPT_NAME=encrypt.bat
set EXECUTABLE_CLASS=org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI
set EXEC_CLASSPATH=.
if "%JASYPT_CLASSPATH%" == "" goto computeclasspath
set EXEC_CLASSPATH=%EXEC_CLASSPATH%;%JASYPT_CLASSPATH%
:computeclasspath
IF "%OS%" == "Windows_NT" setlocal ENABLEDELAYEDEXPANSION
FOR %%c in (%~dp0lib\*.jar) DO set EXEC_CLASSPATH=!EXEC_CLASSPATH!;%%c
IF "%OS%" == "Windows_NT" setlocal DISABLEDELAYEDEXPANSION
set JAVA_EXECUTABLE=java
if "%JAVA_HOME%" == "" goto execute
set JAVA_EXECUTABLE="%JAVA_HOME%\bin\java"
:execute
%JAVA_EXECUTABLE% -classpath %EXEC_CLASSPATH% %EXECUTABLE_CLASS% %SCRIPT_NAME% %*
Run Code Online (Sandbox Code Playgroud)
我收到此错误(我也尝试过cd /d [the dir where encrypt.bat is located]
并且错误仍然存在):
错误消息指出,在org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI
哪里找不到主要类。我不明白 我试图更改JAVA_HOME
系统变量中的值,但是没有运气。
我有几个微服务与OpenFeign
. 每个都是一个项目的子模块(称之为“父”),有自己的 docker 容器。
好的。因此,当我想使用feign.builder().target()
方法构建客户端时,会发生错误,声称“目标值必须是绝对的”。我查看了源代码,它的意思是(feign.RequestTemplate.target(RequestTemplate.java:447)
):
public static boolean isAbsolute(String uri) {
return uri != null && !uri.isEmpty() && uri.startsWith("http");
}
Run Code Online (Sandbox Code Playgroud)
问题来了:其他服务的网址如下:
another-service:8080/check
Run Code Online (Sandbox Code Playgroud)
在本地测试中,这不是问题,因为配置文件local
有http://localhost:8080
等等。但是在端到端测试中,这无法绕过绝对检查。
那么,现在该怎么办?
java ×5
java-11 ×2
spring-boot ×2
batch-file ×1
command-line ×1
datetime ×1
docker ×1
gradle ×1
ime ×1
ioexception ×1
jackson ×1
jacoco ×1
jasypt ×1
java-8 ×1
json ×1
lombok ×1
nss ×1
openfeign ×1