我想为我的混合应用程序拍摄一些屏幕截图,以便自动连接.我正在运行Ubuntu 14.04.chromedriver 2.15.322448
使用Selenium和Xvfb可以轻松截取屏幕截图.但是获取视网膜截图并不容易.
我用更高的dpi开始了我的Xvfb:
/usr/bin/Xvfb :99 -screen 0 2000x2000x24 -dpi 200
Run Code Online (Sandbox Code Playgroud)
当我检查显示信息时,一切似乎都是正确的:
xdpyinfo -display :99
...
screen #0:
dimensions: 2000x2000 pixels (254x254 millimeters)
resolution: 200x200 dots per inch
depths (6): 24, 1, 4, 8, 16, 32
...
Run Code Online (Sandbox Code Playgroud)
然后我就像这样开始我的chromedriver
private WebDriver getChromeDriver ( Phone phone )
{
Map<String, Object> deviceMetrics = new HashMap<String, Object>();
deviceMetrics.put("width", 320);
deviceMetrics.put("height", 460);
deviceMetrics.put("pixelRatio", 2);
Map<String, Object> mobileEmulation = new HashMap<String, Object>();
mobileEmulation.put("deviceMetrics", deviceMetrics);
mobileEmulation.put("userAgent", "iphone4");
ChromeDriverService cds = new ChromeDriverService.Builder().withEnvironment(ImmutableMap.of("DISPLAY", ":99")).build();
Map<String, Object> chromeOptions …
Run Code Online (Sandbox Code Playgroud) selenium screenshot retina-display xvfb selenium-chromedriver
在java(v11)中,我希望允许任何语言中的所有字符来选择用户名,例如ASCII、拉丁语、希腊语、中文等。
\n\n我们尝试了该模式\\p{IsAlphabetic}
。
但在这种模式下,像“”这样的名称是允许的。我不想让人们用这样的 unicode 字符来设计他们的名字。我希望他输入“Chris”而不是“”
\n\n应该允许将自己命名为“\xe5\xb0\xa4\xe9\x9b\xa8\xe6\xba\xaa”、“Linus”或“G\xc3\xb6del”。
\n\n如何实现正确的正则表达式不允许名称中出现奇怪的样式?
\n我们正试图改用gradle.一切正常但我的内部存储库存在问题,只能通过驻留在pkcs#11令牌上的客户端证书进行访问.
有了maven我刚才有一个像这样的.mavenrc文件:
#!/bin/bash
MAVEN_OPTS=" $MAVEN_OPTS \
-Djava.security.debug=sunpkcs11 \
-Djavax.net.ssl.trustStore=NONE \
-Djavax.net.ssl.trustStoreType=pkcs11 \
-Djavax.net.ssl.keyStore=NONE \
-Djavax.net.ssl.keyStoreType=pkcs11 \
"
Run Code Online (Sandbox Code Playgroud)
所以我在开头将这些java选项放入我的gradlew包装器脚本中:
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=" \
-Djava.security.debug=sunpkcs11 \
-Djavax.net.ssl.trustStore=NONE \
-Djavax.net.ssl.trustStoreType=pkcs11 \
-Djavax.net.ssl.keyStore=NONE \
-Djavax.net.ssl.keyStoreType=pkcs11 \
"
Run Code Online (Sandbox Code Playgroud)
当我运行./gradlew build时,我被问到我的令牌的引脚,但随后工件的请求失败了401.在服务器上没有客户端证书到达.
$ ./gradlew --stacktrace compileJava
:compileJava
SunPKCS11 loading /etc/opensc/opensc-java.cfg
sunpkcs11: Initializing PKCS#11 library /usr/lib/opensc-pkcs11.so
Information for provider SunPKCS11-OpenSC
[lots of debugging infos from sub pkcs11]
sunpkcs11: getting provider …
Run Code Online (Sandbox Code Playgroud) 通常我使用hsqldb进行一些集成测试,它工作正常.但是有些测试需要有一个postgresql实例.由于我们的生产服务器运行postgresql,因此无论如何都要对生产数据库运行测试.
是否有maven插件或类似的东西,可以轻松安装和启动给定端口上的postgresql数据库,并在所有测试运行后关闭它?
像mysql的mysql-je之类的东西?
我使用eit和git(egit).
我想利用我的ssh-agent所以我可以从日食中推出.有谁知道如何设置egit使用ssh-agent?
背景:我无法将我的密钥上传到eclipse,因为我的密钥是在cryptostick上.我的ssh-agent可以在opensc的帮助下加载.
我想编写一个 REST 服务,它确实响应一个 zipFile 和一些 json 数据,所有内容都在一个多部分/混合请求中。
服务器部分工作正常,我正在使用 Firefox 的 REST 客户端对其进行测试。我的服务器发送这样的多部分
--k-dXaXvCFusLVXUsg-ryiHMmkdttadgcBqi4XH
Content-Disposition: form-data; name="form"
Content-type: application/json
{"projectName":"test","signal":"true"}
--k-dXaXvCFusLVXUsg-ryiHMmkdttadgcBqi4XH
Content-Disposition: form-data; name="file2"; filename="file2.txt"
Content-type: application/octet-stream
Content-Length: 10
hallo=Welt
Run Code Online (Sandbox Code Playgroud)
我知道 RestTemplate 可以在开箱即用的 MultiValueMap 的帮助下发送多部分。
现在我尝试使用多部分/混合响应并返回 MultiValueMap
@Component
public class RestCommand
extends AbstractLoginRestCommand<Form, MultiValueMap<String, Object>>
{
@Override
protected MultiValueMap<String, Object> executeInternal ( Form form )
{
RestTemplate restTemplate = getRestTemplate();
MyMultiValueMap map = restTemplate.postForObject(getUrl(), form, MyMultiValueMap.class);
return new LinkedMultiValueMap<String, Object>(map);
}
}
class MyMultiValueMap extends LinkedMultiValueMap<String, Object>
{}
Run Code Online (Sandbox Code Playgroud)
MyMultiValueMap 的存在是为了防止类型擦除(泛型)。
这给 …
我们对.well-known/apple-app-site-association
(AASA)有很多请求,因为我们在我们的应用程序中使用了通用链接。据我了解,该文件在应用安装(和更新)时下载一次。
无论我们网站上的流量如何,我们每天都会向 AASA 发送大约 75.000 个请求。我们的流量和应用安装量差异很大。我们的应用安装量从每天 80 个单位到 1000 个单位不等。但是每天我们仍然有大约 75.000 个请求给 AASA。
只有少数请求(大约 500 个)会转到根文件夹而不是.well-known
. 所以回退机制不能成为这么多请求的原因。
所有这些请求都使用 UserAgent 记录,例如
swcd (未知版本) CFNetwork/894 Darwin/17.4.0
只是版本号不同。每天只有很少的请求来自其他用户代理。
我们目前不使用任何 Cache-control 标头,因为大公司也不这样做(例如Facebooks AASA)。我认为 Cache-control 标头没有帮助,因为在我的理解中,每个应用程序只加载一次 AASA。
向 AASA 提出如此大量且稳定的请求的原因是什么?
我有一个schema.xsd
包含和修改xhtml像这样:
<xs:redefine schemaLocation="http://www.w3.org/MarkUp/SCHEMA/xhtml11.xsd">
...
</xs:redefine>
Run Code Online (Sandbox Code Playgroud)
现在我写了一个Validator,其中
它工作正常,因为它不从网络加载任何文件,而是找到我的catalog.xml
文件中给出的xhtml11.xsd .
public class XmlTemplateValidator implements TemplateValidator
{
public List<SAXParseException> validate ( String xml ) throws Exception
{
Reader input = new StringReader(xml);
InputSource inputSource = new InputSource(input);
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setNamespaceAware(true);
factory.setValidating(true);
SAXParser parser = factory.newSAXParser();
parser.setProperty("http://java.sun.com/xml/jaxp/properties/schemaLanguage", "http://www.w3.org/2001/XMLSchema");
XMLReader reader = parser.getXMLReader();
reader.setEntityResolver(new CatalogResolver());
DefaultErrorHandler handler = new DefaultErrorHandler();
reader.setErrorHandler(handler);
reader.parse(inputSource);
return handler.getSaxParseExceptions();
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想要完全相同的东西,但我想在我的验证器中给出架构(所以不要让作者说它应该验证哪个架构,而是让验证器决定使用哪个架构.
public class NewXmlTemplateValidator implements TemplateValidator
{
static final String schemaSource …
Run Code Online (Sandbox Code Playgroud) 我想使用休眠 5.x。在 hibernate 5.x 中,有新的接口ImplicitNamingStrategy
和PhysicalNamingStrategy
。
对于name
实体的属性,User
我希望user_name
在我的数据库中有一个列名。我不想用@Column(name="...")
. 我尝试编写自定义,ImplicitNamingStrategy
但无法获取拥有实体的名称。
public class MyNamingStrategy extends ImplicitNamingStrategyComponentPathImpl
{
@Override
public Identifier determineBasicColumnName ( ImplicitBasicColumnNameSource source )
{
// How to get the name of the owning entity?
String owningEntityName = "howdoigetthis";
Identifier basicColumnName = super.determineBasicColumnName(source);
Identifier identifier = Identifier.toIdentifier(owningEntityName +"_" + basicColumnName.toString());
return identifier;
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法只使用 NamingStrategy 来为每一列添加表(或实体)名称的前缀?
我需要同步这个,当许多线程访问get方法并且只有一个线程正在访问setList方法时?
public class ListContainer {
private List<String> myList = new ArrayList<String();
public List<String> get ( )
{
return new ArrayList<String>(myList);
}
public List<String> set ( )
{
this.myList = computeList();
}
}
Run Code Online (Sandbox Code Playgroud)
我不在乎读者是否获得旧数据,但数据应该是一致的.
Janning
java ×5
eclipse ×1
egit ×1
git ×1
gradle ×1
hibernate ×1
ios ×1
postgresql ×1
regex ×1
resttemplate ×1
screenshot ×1
selenium ×1
spring ×1
spring-mvc ×1
ssh-agent ×1
ssl ×1
synchronized ×1
validation ×1
xml ×1
xsd ×1
xvfb ×1