我期待在sitebricks的HiddenMethodFilter实施这里:
在第65行,有以下代码:
try {
String methodName = httpRequest.getParameter(this.hiddenFieldName);
if ("POST".equalsIgnoreCase(httpRequest.getMethod()) && !Strings.empty(methodName)) {
....
Run Code Online (Sandbox Code Playgroud)
它检查是否设置了特定参数并使用它来包装请求.但是,在读取该参数时,它将使用流,并且最终的servlet将无法读取任何数据.
什么是避免这种情况的最佳方法?我在这里实现了HttpServletRequestWrapper ,它将流的内容读入字节数组.但是,这可能会使用大量内存来存储请求.
private HttpServletRequestWrapper getWrappedRequest(HttpServletRequest httpRequest, final byte[] reqBytes)
throws IOException {
final ByteArrayInputStream byteInput = new ByteArrayInputStream(reqBytes);
return new HttpServletRequestWrapper(httpRequest) {
@Override
public ServletInputStream getInputStream() throws IOException {
ServletInputStream sis = new ServletInputStream() {
@Override
public int read() throws IOException {
return byteInput.read();
}
};
return sis;
}
};
}
Run Code Online (Sandbox Code Playgroud)
有没有更好的办法?我们可以在不消耗流的情况下读取参数吗?(有些东西类似于peek)我们可以重置流吗?
我可以看到有一个使用nslookup反向查找给定IP地址的条目.
nslookup 54.193.201.195
Server: 172.16.0.23
Address: 172.16.0.23#53
Non-authoritative answer:
195.201.193.54.in-addr.arpa name = ec2-54-193-201-195.us-west-1.compute.amazonaws.com.
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用几个堆栈溢出答案中列出的方法在Java中执行相同操作时,我不断获得与规范主机名相同的输入IP.
//Always prints the IP address I input
addr = InetAddress.getByName("54.193.201.195");
log.debug("Host Name: {}", addr.getCanonicalHostName());
Run Code Online (Sandbox Code Playgroud)
如何取回主机名条目而不是我开始使用的相同IP?
我在dockerhub 找到了官方的哨兵图像.但是文档不完整,我无法一步一步地设置环境.
我们必须首先设置数据库容器,但它们都没有告诉我们如何设置它.具体来说,我不知道哨兵将使用的用户名和密码是什么.
当我运行sentry容器时,我也收到以下错误:
sudo docker run --name some-sentry --link some-mysql:mysql -d sentry
e888fcf2976a9ce90f80b28bb4c822c07f7e0235e3980e2a33ea7ddeb0ff18ce
sudo docker logs some-sentry
Traceback (most recent call last):
File "/usr/local/bin/sentry", line 9, in <module>
load_entry_point('sentry==6.4.4', 'console_scripts', 'sentry')()
File "/usr/local/lib/python2.7/site-packages/sentry/utils/runner.py", line 310, in main
initializer=initialize_app,
File "/usr/local/lib/python2.7/site-packages/logan/runner.py", line 167, in run_app
configure_app(config_path=config_path, **kwargs)
File "/usr/local/lib/python2.7/site-packages/logan/runner.py", line 89, in configure_app
raise ValueError("Configuration file does not exist at %r" % (config_path,))
ValueError: Configuration file does not exist at '/.sentry/sentry.conf.py'
Run Code Online (Sandbox Code Playgroud) 我一直在研究Mesos,Marathon和Chronos组合来托管大量网站.在我的脑海中,我应该可以在我的笔记本电脑中键入一些命令,并等待大约30分钟来构建和部署.
我唯一的问题是,我的资源分散在多个数据中心,众多云帐户和大约6个内部场所.我没有理由不能通过我的笔记本电脑控制它们 - (当涉及到我的硬件时,我有严重的电源和控制问题!)
我认为我最好的方法是在云中建立大脑,(动物园饲养员和至少一个主人),然后添加单独的数据中心,但我还没有看到任何分布式集群的例子,其中并非所有节点都可以相互通信.
任何人都可以推荐一种方法吗?
我有以下 jgitflow 插件并使用 Jenkins 执行自动发布。使用命令mvn --batch-mode jgitflow:release-start jgitflow:release-finish。然而,一切正常,我从未在 github 中看到任何标签。根据文档,除非使用 notags,否则我的所有版本都应该创建标签。知道出了什么问题吗?
<plugin>
<groupId>external.atlassian.jgitflow</groupId>
<artifactId>jgitflow-maven-plugin</artifactId>
<version>1.0-m4.3</version>
<configuration>
<flowInitContext>
<masterBranchName>release</masterBranchName>
<developBranchName>master</developBranchName>
<releaseBranchPrefix>release-</releaseBranchPrefix>
<versionTagPrefix>release-</versionTagPrefix>
</flowInitContext>
<noReleaseMerge>true</noReleaseMerge>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
分别使用 release-start 和 finish 也没有帮助。见下文:
mvn --batch-mode jgitflow:release-start -Dmaven.javadoc.skip=true -DskipTests
git push --tags
Everything up-to-date
Run Code Online (Sandbox Code Playgroud) 一个新手问题:我写了第一个基于钢筋的erlang应用程序.我想配置一些基本的特性,如服务器主机等.放置它们的最佳位置在哪里,我应该如何将它们加载到应用程序中?
我正在寻找很多面试问题,其中的问题需要一起遍历两棵树,我不确定到底如何去做。
例如
给定两个二叉树的根,如何判断叶子元素的顺序是否相等,但当第一个节点违反规则时必须实现短路返回。
默认情况下,Collectd 将其插件存储在哪里?我缺少一个 perl 插件,我想确保它不是因为安装被灌输。
是否可以自动将基于gsutil的文件上传到谷歌云存储,以便登录时不需要用户干预?
我的用例是有一个jenkins作业,它会轮询SCM位置以更改一组文件.如果它检测到任何更改,则会将所有文件上传到特定的Google云端存储分区.