我一直在寻找有关Java中异步I/O的优点的详细信息,特别是从应用程序堆栈设计.
我遇到过很多事件驱动服务器的例子,如Node.js,Tornedo等.
我无法理解的是,为什么在Java EE中使用JBoss或Weblogic应用服务器的整个应用程序堆栈迁移到事件驱动的体系结构.
甚至这些服务器也支持非阻塞I/O. 是的,他们正在为每个请求分配一个线程,但是如果有一个线程池,资源是不是在良好的性能参数范围内呢?
请按以下方式向我提供一些意见.
我们需要使用JasperReports生成文本报告。
精度要准确,样本格式如下

所述的JasperReports,exportToText方法不满足上述标准和反复调整的.jrxml未投放的目的。
我们也调整了字符宽度和字符高度,但行和列之间的间距仍然不正确。
JasperReports API是否支持文本格式的这种精度?
有没有其他 API 可以帮助我们实现这种格式?
我正在开发一个自定义的SonarQube插件来创建项目特定的规则集.已编写自定义规则,并且使用JUnit成功执行规则.以下是自定义声纳规则.
@Rule(key = StringConstants.AVOID_SOCKETS_API_KEY)
public class AvoidSocketsApiRule extends IssuableSubscriptionVisitor {
@Override
public List<Tree.Kind> nodesToVisit() {
return ImmutableList.of(Tree.Kind.VARIABLE);
}
@Override
public void visitNode(final Tree tree) {
final VariableTree variableTree = (VariableTree) tree;
final Type type = variableTree.symbol().type();
if (type.is(StringConstants.SOCKET_CHANNEL) || type.is(StringConstants.SERVER_SOCKET_CHANNEL)
|| type.is(StringConstants.ASYNC_SOCKET_CHANNEL) || type.is(StringConstants.ASYNC_SERVER_SOCKET_CHANNEL)) {
this.reportIssue(variableTree.simpleName(), StringConstants.AVOID_SOCKETS_API_MESSAGE);
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我将应用程序打包到声纳插件并部署到sonarqube时,它给我一个非法的状态异常.我能够使用Junit复制该问题.
@Test
public void test() {
final CustomRulesDefinition rulesDefinition = new CustomRulesDefinition();
final RulesDefinition.Context context = new RulesDefinition.Context();
rulesDefinition.define(context);
final RulesDefinition.Repository repository = context.repository(StringConstants.REPOSITORY_KEY);
assertThat(repository.name()).isEqualTo(StringConstants.REPOSITORY_NAME);
assertThat(repository.language()).isEqualTo(StringConstants.LANG);
assertThat(repository.rules()).hasSize(RulesList.getChecks().size());
this.assertAllRuleParametersHaveDescription(repository);
}
private …Run Code Online (Sandbox Code Playgroud)