小编Jan*_*ing的帖子

如何使用Xvfb和Selenium拍摄Retina屏幕截图

我想为我的混合应用程序拍摄一些屏幕截图,以便自动连接.我正在运行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

7
推荐指数
1
解决办法
1822
查看次数

Java Regex - 允许使用所有常规 Unicode 字符作为名称,但不允许使用晦涩的变体

在java(v11)中,我希望允许任何语言中的所有字符来选择用户名,例如ASCII、拉丁语、希腊语、中文等。

\n\n

我们尝试了该模式\\p{IsAlphabetic}

\n\n

但在这种模式下,像“”这样的名称是允许的。我不想让人们用这样的 unicode 字符来设计他们的名字。我希望他输入“Chris”而不是“”

\n\n

应该允许将自己命名为“\xe5\xb0\xa4\xe9\x9b\xa8\xe6\xba\xaa”、“Linus”或“G\xc3\xb6del”。

\n\n

如何实现正确的正则表达式不允许名称中出现奇怪的样式?

\n

java regex

7
推荐指数
1
解决办法
654
查看次数

Gradle - 公司存储库需要ssl客户端证书

我们正试图改用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)

java ssl gradle

6
推荐指数
1
解决办法
5974
查看次数

如何启动postgresql实例进行集成测试

通常我使用hsqldb进行一些集成测试,它工作正常.但是有些测试需要有一个postgresql实例.由于我们的生产服务器运行postgresql,因此无论如何都要对生产数据库运行测试.

是否有maven插件或类似的东西,可以轻松安装和启动给定端口上的postgresql数据库,并在所有测试运行后关闭它?

mysql的mysql-je之类的东西?

java postgresql integration-testing

6
推荐指数
1
解决办法
1667
查看次数

Eclipse git和ssh-agent

我使用eit和git(egit).

我想利用我的ssh-agent所以我可以从日食中推出.有谁知道如何设置egit使用ssh-agent?

背景:我无法将我的密钥上传到eclipse,因为我的密钥是在cryptostick上.我的ssh-agent可以在opensc的帮助下加载.

eclipse git egit ssh-agent

6
推荐指数
2
解决办法
5731
查看次数

Spring REST - RestTemplate 可以使用多部分/混合吗?

我想编写一个 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 的存在是为了防止类型擦除(泛型)。

这给 …

spring multipartform-data spring-mvc resttemplate

6
推荐指数
1
解决办法
5183
查看次数

对 .well-known/apple-app-site-association 的请求过多 - 是否推荐使用 Cache 标头?

我们对.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 提出如此大量且稳定的请求的原因是什么?

ios ios-universal-links

6
推荐指数
0
解决办法
759
查看次数

用于实体解析的Catalog.xml文件的XMLSchema验证

我有一个schema.xsd包含和修改xhtml像这样:

<xs:redefine schemaLocation="http://www.w3.org/MarkUp/SCHEMA/xhtml11.xsd">
...
</xs:redefine>
Run Code Online (Sandbox Code Playgroud)

现在我写了一个Validator,其中

  • 从xml文件中读取模式
  • 使用CatalogManager来解析实体

它工作正常,因为它不从网络加载任何文件,而是找到我的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)

java xml validation xsd

5
推荐指数
1
解决办法
2170
查看次数

Hibernate 5 隐式命名策略

我想使用休眠 5.x。在 hibernate 5.x 中,有新的接口ImplicitNamingStrategyPhysicalNamingStrategy

对于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 来为每一列添加表(或实体)名称的前缀?

hibernate hibernate-5.x

5
推荐指数
1
解决办法
2413
查看次数

很多读者,一位作家:我需要同步吗?

我需要同步这个,当许多线程访问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 synchronized

4
推荐指数
1
解决办法
596
查看次数