小编Dav*_*rth的帖子

是否有针对Scala的编码标准执行工具?

在我工作的地方,我们主要使用Java.我们一直广泛使用CheckStyle来强制执行Java编码标准.

我们现在正在扩展到Scala.许多与Java相同的注意事项(缩进/空格,命名约定......) - 并且可以说具有一致的编码风格,考虑到语言的强大功能,这一点更为重要.

但是,Scala似乎没有Checkstyle的等效项.

有谁知道吗?

coding-style scala checkstyle

19
推荐指数
2
解决办法
4151
查看次数

在Java中匹配Excel的浮点

我有一个.xlsx电子表格,在表格1的左上角单元格中有一个数字.

Excel UI显示:

-130.98999999999
Run Code Online (Sandbox Code Playgroud)

这在公式栏中可见,即不受包含单元格设置为显示的小数位数的影响.这是Excel将为此单元格显示的最准确数字.

在底层XML中,我们有:

<v>-130.98999999999069</v>
Run Code Online (Sandbox Code Playgroud)

当尝试使用Apache POI读取工作簿时,它通过Double.valueOf从XML提供数字,并提供:

-130.9899999999907
Run Code Online (Sandbox Code Playgroud)

不幸的是,这与用户在Excel中看不到的数字相同.任何人都可以指向一个算法来获取用户在Excel中看到的相同数字吗?

到目前为止,我的研究表明,Excel 2007文件格式使用了IEE754浮点的略微非标准版本,其中值空间不同.我相信Excel的浮点,这个数字落在边界的另一边进行舍入,因此就像向下舍入而不是向上.

java floating-point excel openxml apache-poi

13
推荐指数
1
解决办法
3204
查看次数

CSS/Javascript:如何在内联元素周围绘制最小边框?

请考虑以下HTML:

<p>This is a potentially large paragraph of text, which <span>may get 
wrapped onto several lines when displayed in the browser.
I would like to be able to draw a minimal</span> box round the span</p>
Run Code Online (Sandbox Code Playgroud)

我想画一个跨度的最小边框.

那是:

  • 如果跨度渲染在一行上,则边框相当于设置边框的CSS样式:1px solid black;
  • 如果跨度在多条线上渲染,则边框将围绕跨度的最外边缘绘制,而不是在跨越的线之间绘制.这相当于在跨度上设置CSS背景颜色,并在突出显示区域的边缘周围绘制线条.

我相信单独使用原始CSS无法做到这一点(在第二种情况下).涉及javascript库的解决方案或特定于Firefox的解决方案是可以接受的.

这是第二个场景应该如何看的模型:

第二种情景模拟

html javascript css firefox

11
推荐指数
1
解决办法
3082
查看次数

Artifactory&Gradle:运行许可证检查

我们使用Gradle构建Java项目,并将生成的工件推送到Artifactory.

我们使用的摇篮Artifactory的插件,这意味着我们看到建立在Artifactory的接口,我们也看到关于构建使用许可证信息许可证选项卡.

但是,我无法解决可能只使用Gradle插件运行许可证检查.是否有设置让我提供许可证警报的电子邮件地址?或者我是否需要使用其中一个CI集成才能获得该功能?

artifactory

11
推荐指数
1
解决办法
194
查看次数

使用客户端机密调用KeyCloak的Admin REST API

从Docker镜像运行KeyCloak时,在https://keycloak.gitbooks.io/server-developer-guide/content/v/2.2/topics/admin-rest-api.html使用CURL的示例适用于我.

要移动到我的应用程序的最终目标形状,我想使用客户端ID和机密而不是用户名+密码进行身份验证.

但是,当我将admin-cli客户端切换到"已启用服务帐户"时,访问类型为机密,并通过以下调用获取令牌:

curl -d "client_id=admin-cli" -d "client_id=admin-cli" -d "client_secret=xxxx" -d "grant_type=client_credentials" "http://localhost:8080/auth/realms/master/protocol/openid-connect/token"
Run Code Online (Sandbox Code Playgroud)

该令牌导致调用管理REST API时出现403错误.我做错了什么吗?

keycloak

8
推荐指数
2
解决办法
7090
查看次数

Scala中的@throws不允许调用Java来捕获正确的异常类型

我有一些像这样的Scala代码:

class Callee {
  @throws(classOf[MyCheckedException])
  def doStuff() {
  }
}
Run Code Online (Sandbox Code Playgroud)

像这样从Java调用它:

public class Caller {

  public static void main(String[] args) {
    // this won't compile; the Java compiler complains that the catch block is unreachable
    // however without the catch block, it complains "unhandled exception MyCheckedException"
    try {
      new Callee().doStuff();
    }
    catch (MyCheckedException e) {

    }
  }
}
Run Code Online (Sandbox Code Playgroud)

删除catch块会导致Java编译器发出错误,指出"未处理的异常类型MyCheckedException".为MyCheckedException添加catch块导致编译器抱怨catch块无法访问,因为永远不会抛出异常.

如果我捕获Exception并执行一个instanceOf,我可以捕获来自doStuff的正确异常,但我认为@throws注释应该生成正确的字节码以使正确的catch块工作.我错了,或者这里有错误?

对于记录,这是使用Scala 2.9.2和Java 1.6.

编辑:它使用命令行中的sbt编译精细调用javac/scalac.这个错误只在Eclipse中编译为你的类型时显而易见,这表明该错误存在于Eclipse Java编译器或IDE的某些部分中.其他人可以这样重现吗?我正在使用Eclipse 3.7.2

java eclipse scala exception scala-ide

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

Spring Cloud Gateway:与 HTTP(S) 位于同一 URL 上的 Websockets

我使用 Spring Cloud Gateway 进行如下路由配置:

spring:
  cloud:
    gateway:
      routes:
      - id: http
        uri: http://kubernetes-ingres-controller
Run Code Online (Sandbox Code Playgroud)

换句话说,我将所有路径发送到其他地方,而该地方恰好是 K8s 入口控制器。Spring 添加了一些标头并处理会话 cookie 到承载令牌的转换。

我开始添加一些处理 websocket 的端点。但是,由于我们使用 websockets 进行 GraphQL 订阅,因此我们倾向于使用单个 /graphql 路径来处理普通 GraphQL 查询和用于订阅的 websocket。

有没有办法将 Spring Cloud Gateway 配置为在单个路径上支持 http 和 ws(或 https 和 wss)?

我可以做这个:

spring:
  cloud:
    gateway:
      routes:
      - id: http
        uri: http://kubernetes-ingres-controller
      - id: ws
        uri: ws://kubernetes-ingres-controller
        predicates:
          - Path=/graphql
Run Code Online (Sandbox Code Playgroud)

然而,我不清楚普通的 HTTP 是否可以在 graphql 路径上工作——实际上有很多这样的路径;我不想一一列举。

某种允许 http 在单个路由上可选升级到 wss 的设置将是理想的。

java spring spring-boot spring-cloud spring-cloud-gateway

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

可以配置JAXB以防止实体扩展攻击吗?

通常,在java中解析XML时,可以通过使用避免成为实体扩展攻击的受害者

dbf.setFeature(javax.xml.XMLConstants.FEATURE_SECURE_PROCESSING, true);

其中dbf是一个DocumentBuilderFactory,用于创建用于XML解析的DocumentBuilders.

但是,假设我正在使用JAXB解组一些XML,例如:

  final JAXBContext context = JAXBContext.newInstance(MyClass.class);
  final Unmarshaller unmarshaller = context.createUnmarshaller();
  final MyClass result = (MyClass) unmarshaller.unmarshal(input);
Run Code Online (Sandbox Code Playgroud)

如何配置JAXB以在基础XML解析器上使用FEATURE_SECURE_PROCESSING?

谷歌搜索答案提出以下最佳结果:http: //forums.java.net/node/699983

但是,我不想引入XMLStreamFactory等实现,只是为了使实体扩展可配置.有没有办法只使用JAXB API解决这个问题?

java xml jaxb

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

Union安装到Docker容器中

如果我有一个目录d1 /,我知道我可以通过这样做将它挂载到Docker容器中的/ mountPoint:

docker run -v /path/to/d1:/mountPoint ...
Run Code Online (Sandbox Code Playgroud)

但是,我有两个目录d1 /和d2 /(假设它们分别包含文件a.txt和b.txt).

我想在我的容器中挂载/ mountPoint这两个目录的联合,即我希望/mountPoint/a.txt和/mountPoint/b.txt存在.

鉴于Docker在内部使用了很多UnionFS,我希望有一些选项可以在容器内的特定路径上进行联合装载,但是如果是这样的话我就找不到它们.

docker unionfs

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

Eclipse RCP - 很好的Eclipse Forms教程/资源

我正在寻找资源来学习如何在Eclipse RCP应用程序中有效地使用Eclipse表单.我试图在Indigo上使用最新的SWT Window Builder插件,但是这种方式构建表单对我来说并不适用.不能在可扩展复合材料等中放任何东西(我和Netbeans设计师有Swing背景),而且我是SWT的新手.到目前为止,我所能找到的是2005年的这个相当古老的教程.任何帮助,指向好的教程/书籍/源代码示例都将受到高度赞赏.

eclipse-rcp

3
推荐指数
2
解决办法
4204
查看次数

SWT:区分选择和键入组合

考虑以下 Java (SWT) 代码:

private static ComboViewer createViewer(final Shell shell) {
  final ComboViewer v = new ComboViewer(shell, SWT.DROP_DOWN);
  v.setLabelProvider(new LabelProvider());
  v.setContentProvider(new ArrayContentProvider());
  v.setInput(new String[]{"value 1", "value 2"});
  return v;
}

public static void main(final String[] args) {
  Display display = new Display();
  Shell shell = new Shell(display);
  shell.setSize(200, 60); 
  shell.setLayout(new GridLayout());

  final ComboViewer v = createViewer(shell);

  // This wires up the userSelectedSomething method correctly
  v.addSelectionChangedListener(new ISelectionChangedListener() {
    @Override
    public void selectionChanged(final SelectionChangedEvent event) {
      userSelectedSomething();
    }
  });

  shell.open();
  while (!shell.isDisposed()) …
Run Code Online (Sandbox Code Playgroud)

java swt jface

3
推荐指数
1
解决办法
6721
查看次数

XSLT 2.0 - 更改名称空间而不丢弃现有的前缀绑定

这是我的输入XML文档:

<test xmlns="http://www.example.com/v1">
  <qnameValue xmlns:foo="http://foo.example.com/">foo:bar</qnameValue>
</test>
Run Code Online (Sandbox Code Playgroud)

我想使用XSLT(2.0)将此文档的命名空间更改为v2,即所需的输出是:

<test xmlns="http://www.example.com/v2">
  <qnameValue xmlns:foo="http://foo.example.com/">foo:bar</qnameValue>
</test>
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用此样式表:

<xsl:stylesheet version='2.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
     xmlns:previous='http://www.example.com/v1'>
  <xsl:output encoding='UTF-8' indent='yes' method='xml'/>
  <!-- Identity transform -->
  <xsl:template match='@*|node()'>
    <xsl:copy>
      <xsl:apply-templates select='@*|node()'/>
    </xsl:copy>
  </xsl:template>
  <!-- Previous namespace -> current. No other changes required. -->
  <xsl:template match='previous:*'>
    <xsl:element name='{local-name()}' namespace='http://www.example.com/v2'>
      <xsl:apply-templates select='@* | node()' />
    </xsl:element>
  </xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

不幸的是输出结果如下:

<test xmlns="http://www.example.com/v2">
  <qnameValue>foo:bar</qnameValue>
</test>
Run Code Online (Sandbox Code Playgroud)

即qnameValue上的关键命名空间绑定已经消失.有没有办法强制所有命名空间绑定的副本到输出?

xml xslt xml-namespaces xslt-2.0

3
推荐指数
1
解决办法
5047
查看次数