小编Kar*_*. V的帖子

Native shell命令设置为从XML提取节点值

我正在尝试从pom.xml中提取节点的值:

<?xml version="1.0" encoding="UTF-8"?>
<project>
    <parent>
        <groupId>org.me.labs</groupId>
        <artifactId>my-random-project</artifactId>
        <version>1.5.0</version>
    </parent>
    ...
</project>
Run Code Online (Sandbox Code Playgroud)

我需要使用shell命令从XML中提取artifactId和版本.我有以下要求/观察:

  1. shell脚本将在我们工作时使用的构建程序集文件中完成,因此脚本越小越好.
  2. 由于它将在多个系统(通常是RHEL5)上使用,我正在寻找可以在默认图像上本机运行的东西.
  3. 类似的标签可以出现在pom的其他地方,所以我不能简单地为这些标签添加awk.

我尝试过以下方法:

  1. xpath适用于我的Mac,但在RHEL计算机上默认不可用.同样的xmllint --xpath,我想这只是在以后的版本中可用xmllint,我没有,也不能强制执行.
  2. xmllint --pattern似乎很有希望,但我似乎无法获得输出xmllint --pattern '//project/parent/version' pom.xml(打印整个XML)或xmllint --stream --pattern '//project/parent/version' pom.xml(没有输出).

我在这里意识到这是一个常见问题,但上述几点是我不能使用这些答案的原因.TIA的帮助.

xml xmllint

27
推荐指数
3
解决办法
6万
查看次数

索引和使用主键作为MySQL中的索引

Assets在InnoDB引擎上有一个表定义为:

CREATE TABLE Assets (
qid SMALLINT(5) NOT NULL,
sid BIGINT(20) NOT NULL AUTO_INCREMENT,
...
PRIMARY KEY (sid,qid),
KEY sid (sid)
);
Run Code Online (Sandbox Code Playgroud)

我正在运行以下查询:

SELECT COUNT(*) FROM Assets WHERE sid>10000;
Run Code Online (Sandbox Code Playgroud)

在我的机器上,此查询大约需要30秒,表中有2百万个条目.现在,如果我修改查询以使用索引,结果差异很大:

SELECT COUNT(*) FROM Assets USE INDEX(<index>) WHERE sid>10000;
Run Code Online (Sandbox Code Playgroud)
  • NO INDEX:没有明确的USE INDEX,即第一个SELECT查询:30秒
  • KEY sid (sid):1.5秒
  • KEY cid (sid,qid):1.5秒
  • PRIMARY:我USE INDEX(PRIMARY)在查询中使用过.:30秒

所以这些是我的问题:

  1. 我认为查询会自动使用主键作为索引,基于.但是USE INDEX (cid)和之间存在重大差异NO INDEX.有什么不同?另外,我如何明确地将主键作为索引?

  2. 如果NO INDEX实际上没有使用主键作为索引,那么是 …

mysql indexing primary-key

14
推荐指数
1
解决办法
2371
查看次数

如何在从servlet过滤器执行HTTP重定向时保留请求主体

我有一个部署在2台主机上的Java Web应用程序,前面是servlet过滤器.我在一台主机上向应用程序发送了一个POST请求,该请求被过滤器拦截并重定向到另一台主机:

public void doFilter (ServletRequest request, ServletResponse response,
       FilterChain filterChain)
{
    ...
    if(shouldRedirect) {
        httpResponse.sendRedirect(redirectLocation);
    }
}
Run Code Online (Sandbox Code Playgroud)

在第二台机器上,请求传递过滤器,并由Resource类中的REST API处理.

@POST
public Response handleRequest(InputStream stream)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

stream对象作为POST请求正文的一部分发送.重定向后,请求正文不会被发送并且stream为空.如何在重定向后保留请求正文(或至少这部分内容)?

谢谢.

java http-post servlet-filters

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

标签 统计

http-post ×1

indexing ×1

java ×1

mysql ×1

primary-key ×1

servlet-filters ×1

xml ×1

xmllint ×1