小编Ole*_*eev的帖子

寻找机架应用程序结构和config.ru规格?

这可能会让我看起来很蹩脚但仍然 - 我找不到任何典型的机架应用程序结构(文件夹/文件,如public,config.ru)或config.ru文件内容的正式描述.

在Java世界中,有一个明确的Web应用程序定义及其组成的部分(WEB-INF,META-INF web.xml).

是否有Rack Web应用程序的规范?或者像Ruby本身一样含糊不清.

我希望在http://rack.rubyforge.org/网站上的某个地方找到这些信息,但我不能.请指出我正确的方向.


虽然我将这个问题标记为已回答,但值得一提的是,这个问题本身并不合法.应用程序结构由正在使用的实际webserver /插件组合驱动,如Apache/Passenger,而不是Rack.

ruby rack rackup

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

如何在Eclipse中将行复制到剪贴板?

我试图从我的其他IDE切换到Eclipse,到目前为止一切正常,除了标题中描述的问题.

在我之前的IDE(Idea)中,我将光标放在一行上,按Ctrl+ C,整行将转到剪贴板(如果没有选择任何内容).

有没有办法在Eclipse中使用单个快捷方式将整个当前代码行复制到剪贴板?即没有按Home两次,然后Shift+ Down,然后Ctrl+ C

PS JIC:我不想复制当前的线路 - 我知道该怎么做.

eclipse ide keyboard-shortcuts

12
推荐指数
4
解决办法
4950
查看次数

Ruby中的递归文件列表

我是Ruby的新手(作为Java开发人员),并试图实现一个方法(哦,抱歉,一个函数),它将以递归方式检索和生成子目录中的所有文件.

我把它实现为:

def file_list_recurse(dir)
  Dir.foreach(dir) do |f|
    next if f == '.' or f == '..'
    f = dir + '/' + f
    if File.directory? f
      file_list_recurse(File.absolute_path f) { |x| yield x }
    else
      file = File.new(f)
      yield file
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  1. File.new真的打开文件吗?在Java中,新文件("xxx")没有...如果我需要产生一些结构,我可以从Ruby中查询文件信息(ctime,size等)?
  2. {| x | yield x}对我来说看起来有点奇怪,从这样的递归函数中得到的结果是可以的,还是有某种方法可以避免它?
  3. 有没有办法避免检查'.' 和'..'在每次迭代?
  4. 有没有更好的方法来实现这个?

谢谢

PS:我的方法的示例用法是这样的:

curr_file = nil

file_list_recurse('.') do |file|
  curr_file = file if curr_file == nil or curr_file.ctime > file.ctime
end

puts curr_file.to_path + ' ' + curr_file.ctime.to_s
Run Code Online (Sandbox Code Playgroud)

(那会从树中获取最旧的文件) …

ruby recursion file

11
推荐指数
3
解决办法
7344
查看次数

java - Windows Server 2008上的MulticastSocket问题

我有一个java应用程序,它使用一些MulticastSocket实例来监听一些UDP多播源.每个这样的套接字由专用线程处理.
线程读取每个Datagram,解析它的内容并写入log(log4j)数据包的序列id(long)和接收数据报的时间戳.

当我尝试在Windows Server 2008 R2上运行相同应用程序的2个实例(具有2*6个内核)并比较2个应用程序创建的2个日志时,我注意到数据包的时间频繁不同.

大多数数据包同时由2个应用程序(milis)接收,但两个应用程序在同一数据包的接收时间之间经常存在大约1-7ms的差异.

我尝试在NIC中分配更多缓冲区,并使套接字读取缓冲区更大.此外,我尝试最小化GC运行,我也使用-verbose:gc,可以看到GC时间和有问题的时间差异不会同时发生.这允许我假设我的问题与GC无关.

没有观察到丢包问题,并且不太可能出现带宽问题.

欢迎提出意见/建议.谢谢.

java windows udp multicast windows-server-2008

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

是不是每个请求都开始了一个新的sinatra实例?

当一个新的http请求进来时,会启动一个新的sinatra实例,例如是要初始化sinatra,还是只调用sinatra的前一个实例(相应的get/post方法/路由)的方法?感谢您提供任何文档链接,我无法找到任何文档链接.

如果该行为依赖于部署类型(WEBrick/Passenger等)也会很有趣

ruby rack passenger webrick sinatra

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

蚂蚁的mkdir失败了.我该如何处理这个错误

我有的ANT构建脚本执行以下操作:

  1. 在Windows服务器上执行构建并压缩二进制文件
  2. 使用不同的凭据将具有不同凭据的网络驱动器映射到本地驱动器(ex P :) net use
  3. <mkdir>用来在挂载的驱动器上创建一个目录(P :)
  4. 将二进制文件复制到该驱动器

以下是我的代码 mkdir

<echo>Creating ${buildRequesterUserId} folder at mirroring site starts</echo>
<mkdir dir="P:\build_output\${buildRequesterUserId}"/>
<echo>Creating ${buildRequesterUserId} folder at mirroring site ends</echo>
Run Code Online (Sandbox Code Playgroud)

有时候文件夹的创建工作,有些时候失败并出现以下错误

creation was not successful for an unknown reason 并使构建失败

此错误随机发生.Mkdir工作了一段时间.我不确定为什么它会失败并且不确定它是否因为网络滞后而导致

我试图创建的目录可能已经存在,也可能不存在.我读到如果目录已存在,mkdir不会执行任何操作

我检查failonerror了mkdir 没有.我不希望构建因此而失败.

我已经copy部分处理了错误,但不知道如何处理这个错误mkdir

我怎样才能做到这一点?任何帮助,将不胜感激

问候

KARTHIK

java ant mkdirs

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

何时在Java中选择多个线程进程?

出于什么原因,人们会选择多个线程上的几个进程来实现Java中的应用程序?

我正在重构一个较旧的java应用程序,该应用程序目前分为几个在同一个多核机器上运行的较小的应用程序(进程),通过套接字相互通信.

我个人认为这应该使用线程而不是进程来完成,但是什么参数可以捍卫原始设计?

java concurrency multithreading

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

VisualVM在生产?

我考虑针对生产JVM 运行VisualVM以查看其中发生了什么 - 由于某种原因它开始消耗太多CPU.

它不能导致JVM失败,所以我试图估计所有的风险.

我在他们的网站上看到的唯一可能导致JVM失效的问题与类共享和-XshareJVM选项有关,但是在服务器模式和/或x64系统上没有启用afaik类共享.

因此,对生产JVM运行VisualVM是非常安全的,如果不是这样 - 应该考虑的风险是什么,以及运行VisualVM对JVM(以及使用它进行分析)运行的负载(CPU /内存)有多少?

谢谢

java profiling jvm visualvm

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

任何方式获得@RequestParam的BindingResult?

我正在使用Spring 3 Portlet MVC.仅MVC中的验证/绑定应该是相同的.

我只有一个int表单字段.当我在做的时候

void doSmth(MyForm form, BindingResult bindingResult) throws ... {
  int bindErrors = bindingResult.getErrorCount())
  ...
Run Code Online (Sandbox Code Playgroud)

并提交一个无法解析的字段值,因为int此方法被执行,并且bindErrors是1.此方法接收的表单字段值为0.这很好.

但是创建一个仅包含单个字段的表单并不是很好.

我正在将代码更改为:

void doSmth(@RequestParam int userId, BindingResult bindingResult) ... {
  int bindErrors = bindingResult.getErrorCount())
  ...
Run Code Online (Sandbox Code Playgroud)

并在浏览器中获取Portlet不可用的消息和此异常:

org.springframework.web.portlet.FrameworkPortlet processRequest无法完成请求org.springframework.beans.TypeMismatchException:无法将类型'java.lang.String'的值转换为必需的类型'int'; 嵌套异常是java.lang.NumberFormatException:对于输入字符串:"q"

问题:即使@RequestParam类型转换失败,有没有办法继续执行方法并处理绑定错误?我尝试@RequestParam不需要并提供默认值 - 没有帮助.

java validation spring spring-mvc

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

按需安装gem

我想在客户端安装gem(JSON),但前提是尚未安装(有1.9个Ruby发行版捆绑了JSON).

我无法找到如何做到这一点的线索gem help install.gem install json在安装了Ruby 1.9的Windows系统上运行(捆绑了JSON)会导致运行

    ERROR:  Error installing json:
    The 'json' native gem requires installed build tools.
Run Code Online (Sandbox Code Playgroud)

- 它试图安装它而忽略了gem已经存在的事实.

我不能做像grepping gem list输出这样的bash技巧,因为客户端可能是Windows.

那么只有在系统中不存在宝石的情况下才能安装宝石的多平台方式是什么?

ruby gem rubygems

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