在我工作的地方,我们主要使用Java.我们一直广泛使用CheckStyle来强制执行Java编码标准.
我们现在正在扩展到Scala.许多与Java相同的注意事项(缩进/空格,命名约定......) - 并且可以说具有一致的编码风格,考虑到语言的强大功能,这一点更为重要.
但是,Scala似乎没有Checkstyle的等效项.
有谁知道吗?
我有一个.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的浮点,这个数字落在边界的另一边进行舍入,因此就像向下舍入而不是向上.
请考虑以下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无法做到这一点(在第二种情况下).涉及javascript库的解决方案或特定于Firefox的解决方案是可以接受的.
这是第二个场景应该如何看的模型:
我们使用Gradle构建Java项目,并将生成的工件推送到Artifactory.
我们使用的摇篮Artifactory的插件,这意味着我们看到建立在Artifactory的接口,我们也看到关于构建使用许可证信息许可证选项卡.
但是,我无法解决可能只使用Gradle插件运行许可证检查.是否有设置让我提供许可证警报的电子邮件地址?或者我是否需要使用其中一个CI集成才能获得该功能?
从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错误.我做错了什么吗?
我有一些像这样的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
我使用 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中解析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解决这个问题?
如果我有一个目录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,我希望有一些选项可以在容器内的特定路径上进行联合装载,但是如果是这样的话我就找不到它们.
我正在寻找资源来学习如何在Eclipse RCP应用程序中有效地使用Eclipse表单.我试图在Indigo上使用最新的SWT Window Builder插件,但是这种方式构建表单对我来说并不适用.不能在可扩展复合材料等中放任何东西(我和Netbeans设计师有Swing背景),而且我是SWT的新手.到目前为止,我所能找到的是2005年的这个相当古老的教程.任何帮助,指向好的教程/书籍/源代码示例都将受到高度赞赏.
考虑以下 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) 这是我的输入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上的关键命名空间绑定已经消失.有没有办法强制所有命名空间绑定的副本到输出?
java ×5
scala ×2
xml ×2
apache-poi ×1
artifactory ×1
checkstyle ×1
coding-style ×1
css ×1
docker ×1
eclipse ×1
eclipse-rcp ×1
excel ×1
exception ×1
firefox ×1
html ×1
javascript ×1
jaxb ×1
jface ×1
keycloak ×1
openxml ×1
scala-ide ×1
spring ×1
spring-boot ×1
spring-cloud ×1
swt ×1
unionfs ×1
xslt ×1
xslt-2.0 ×1