JSPX具有转向的可爱副作用:
<div class="magic"></div>
Run Code Online (Sandbox Code Playgroud)
成:
<div class="magic" />
Run Code Online (Sandbox Code Playgroud)
对于许多浏览器而言,即使它是有效的XHTML,也会导致布局混乱和混乱.因此,我使用了一个groovy脚本来查找所有可能的错误的HTML与以下正则表达式:
def m = html =~ /<(\w+)[^>]*?><\/(\w+)>/
def bad = m.findAll { it[1] == it[2] };
Run Code Online (Sandbox Code Playgroud)
有没有办法让JSPX XML处理器不自动关闭标签?
Golang有一种叫做a的东西WaitGroup
,类似于Java中的a CompletionService
或a CountDownLatch
或a Semaphore
或后者的某种组合。
我不完全确定如何在Java中实现WaitGroup。我可以想象一个带有某种Poison消息的自定义CompletionService将成为要走的路(因为队列不能说何时完成),但是也许有更好的并发数据结构/锁?
编辑我在下面发布了一个可能的解决方案Semaphore
,我认为它比使用更加类似thread.join
。
当您运行要在端口80上同时提供静态和动态内容的Java Servlet容器时,您会遇到是否运行服务器的经典问题:
选择的问题.1是chrooting的复杂性,仍然是运行root的安全问题.选择的问题.2是每个Linux发行版都有不同的持久化IPTables的方式.选项3当然可能是想法,但很难设置.
最后,每个发行版都有守护脚本中令人讨厌的差异.
人们发现什么是最好的发动机不可知解决方案,是否有资源来展示如何做到这一点?
编辑:我宁愿不在servlet容器前运行Apache,因为该站点主要是动态的,总内存占用很重要(托管成本).
所以我几乎是一名Java程序员,但我在周末玩F#.我在.NET中最困难的部分之一是尝试找到与Java中的某些工具或库相同的东西.
当然,我可以谷歌相当于每个工具,但我宁愿在一个地方看到每个工具的并排等效.我也想知道哪一个是首选或通常最流行的等效工具/库.
这是我到目前为止:
Java ====> .NET
IDE: Eclipse ===> Visual Studio
持续整合: 哈德森===>不确定.
命令行构建: Maven和Ant ===> NAnt和Bylan我想?
XML序列化: JAXB ==>一些.NET本机的东西
JSON序列 SF JSON-LIB ==> ???
ORM: Hibernate ==> LINQ或NHibernate
依赖注入: Spring和Guice ===>我认为有.NET Spring
Servlet容器或Web服务器: Tomcat,Jetty,这么多===>告诉我不仅仅是IIS ..
单元测试框架: JUnit,TestNG ==>我认为NUnit和XUnit
模拟库: Mockito,JMock,EasyMock ===> ???
GUI: Swing ==> Win Forms我认为???
AOP: AspectJ ==>看起来你需要付出昂贵的代价.
任何编程语言都没有合适的反射机制,我发现它对于快速变化的问题非常不利.
对某些语言而言似乎难以置信或难以做到:
没有反思.
一些没有某种程序反射的示例语言是: C,C++,Haskell,OCaml.我相信还有更多.
为了向您展示大多数这些语言可能违反DRY(不要重复自己)的例子,那就是您必须编写单元测试.您几乎总是需要在定义测试之外的这些语言中注册测试用例.
这些语言的程序员如何缓解这个问题?
编辑:对那些不知道的人有反射的常用语言有:C#,Java,Python,Ruby,以及我个人最喜欢的F#和Scala.
编辑:它似乎是两种常见的方法是代码检测和代码生成.但是我从未见过C的仪器.
有些人可以评论为什么要关闭它,而不仅仅是投票结束,我将删除帖子.
我们将RabbitMQ和Spring-AMQP用于我们的消息传递系统.
但是,有许多Java库使用JMS,我宁愿不重写到AMQP.
我没有使用谷歌的JMS客户端将使用AMQP.
我应该只重写库以直接使用AMQP吗?
任何人都能够在Eclipse 3.6中将Scala和AspectJ(AJDT)完美地结合在一起吗?
似乎Scala的织布工与AspectJ的织布工冲突.我希望我只是遗漏了一些东西.
编辑:在同一个项目中很好地玩
我正在尝试理解在Node.js中处理长时间运行任务的最佳方法.显然在Node.js中执行一个长时间运行的过程并不是一个好主意,因为节点的单线程特性.
我是RabbitMQ的忠实粉丝所以我想在两个节点服务器之间使用兔子:
Node.js Web Server <--> RabbitMQ <--> Node.js Backend Worker
Run Code Online (Sandbox Code Playgroud)
当然,我们的想法是不要放慢Web服务器的速度.我通常会用Java替换后端服务器,但我试图将它全部保留为JS.
我不是Node程序员所以我不确定这是一个好主意还是可能?有没有人尝试过这样的东西?
我只是不喜欢Logback的XML或Groovy配置,并且更喜欢用Java进行配置(这也是因为我将在初始化后的不同时间在运行时更改配置).
似乎进行Logback的Java配置的唯一方法是进行某种初始化,即劫持根appender或拥有自定义系统属性,告诉logback不使用默认配置(这对单元测试和部署来说相当烦人).
我更喜欢的是logback.xml
:
<configuration javaConfig="com.myco.LogBackConfig" />
Run Code Online (Sandbox Code Playgroud)
其中LogbackConfig有一些已建立的静态方法可以进行logback调用,或者它只是重新实例化一个Java bean.
这是我想要一个默认的类路径资源,它将告诉logback使用Java而不是groovy/xml.基本上我想要一些类似于Java ServiceLoader的logback配置.
也许有一种方法可以在Logback中做到这一点,我错过了?
更新: 显然Log4j2(新的log4j)完全符合我的要求,与Java ServiceLoader非常相似.