Postgres JDBC驱动程序似乎无法正确处理UTF-8 clobs.当您检索clob时,字符不正确(您获得了非ascii字符的标记).
据说这是一个已知问题:
幸运的是,对于我的应用程序,我通常会避免使用clobs,所以我所做的字段就是真正的大变种.
其他人如何处理这种限制?
我一直在为我的创业公司广泛使用Java + AspectJ.我想切换到Scala,但我有一个共同的设计模式,我不确定完全是在Scala中实现的最佳方式.
我们的大量应用程序使用注释作为标记使用AspectJ切入点.这与Python的装饰者非常相似,并在此博客.
我曾尝试在Scala中使用此技术但遇到了AspectJ + Scala的问题.即使我确实让它工作,似乎unScala喜欢.
我已经看到一些项目做了一些名称封闭魔术(我认为这就是他们正在做的事情).
替换@Transaction的示例:
transaction {
// code in here.
}
Run Code Online (Sandbox Code Playgroud)
我不得不说,虽然我更喜欢注释,因为它似乎更具说明性. 什么是声明式"装饰"代码块的Scala方式?
所以ClojureScript One看起来令人难以置信!您可以使用REPL实时更新到SPA.
所以这样的东西在Java中是不可能的,你没有REPL,但在Groovy或Scala这样的东西中似乎很有可能.我是一个Lisp偏执狂(我真的应该不是,但很好),并想知道是否有像Clojurescript一样的Scala或Groovy?
更新: 理论上看起来可以将Scala/Groovy包装在Java的ItsNat周围.然而,我对该项目有一些疑问,因为它自2011年以来一直没有更新(他们也有最丑陋的网站......就像他们试图让它变丑一样).许可证也相当严格.
我希望结合/嵌入Tomcat 和我的网络应用程序作为onejar aka胖罐但我不确定它是否可能.使用Maven Shade插件和Winstone可以使用Jetty但是我尝试了类似于Tomcat 7的东西并且无法正确加载它.目标是能够做到:java -jar mywebapp.jar.
问题是Tomcat想要从文件系统而不是从类路径加载东西.也就是说,您可以嵌入Tomcat,但它会期望您的WAR文件可用作文件.
我尝试了以前SO帖子中的许多技术来嵌入Tomcat 6和7.虽然我可以嵌入它并启动它无法访问我的应用程序.
我想一个选项是有开机的JAR解压缩本身,以便AppBase与DocBase在文件系统上的文件.我还没试过,但是会的.
这里有一个重复的问题,我终于找到了:嵌入Tomcat的自包含war文件?(请以复制方式投票结束)
我会使用什么算法(强力或非强力)将多少辆汽车(假设所有汽车的尺寸都相同)放入停车场,这样至少有一个出口(从集装箱出来)并且汽车无法阻挡.或者有人能告诉我一个以编程方式解决这个问题的例子.
停车场的形状各不相同,但如果你想假设它是一些不变的形状,那很好.
另一个编辑:假设停车场的行车距离不是一个因素(尽管如果它是加权因素对车辆的数量是非常好的).
另一个编辑:假设2维(没有起重机或驾驶汽车).
另一个编辑:一旦停车,你就无法移动汽车(这不是代客停车场).
我已多次使用AtomicLong但我从未需要使用AtomicReference
似乎AtomicReference做了(我从另一个stackoverflow问题复制了这个代码):
public synchronized boolean compareAndSet(List<Object> oldValue, List<Object> newValue) {
if (this.someList == oldValue) {
// someList could be changed by another thread after that compare,
// and before this set
this.someList = newValue;
return true;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
要么
public synchronized boolean compareAndSet(List<Object> oldValue, List<Object> newValue) {
if (this.someList == oldValue || this.someList.equals(oldValue)) {
// someList could be changed by another thread after that compare,
// and before this set
this.someList = newValue;
return true;
}
return false; …Run Code Online (Sandbox Code Playgroud) 我找不到一个通用实用程序(静态方法)库来查询注释,而不是直接使用注释api并编写我自己的或使用Springs:
通常我不介意使用Springs,但它只是用于处理注释的相当大的依赖.也许Commons Lang有一天会有AnnotationUtils.
人们用什么来查询注释?
我找不到关于如何在JSPX中编写没有Java的现代标记库的好文档?
Spring Roo提供了大量示例(似乎只是广泛使用tagx的项目).
我可能会提出另一个问题,但每次我想在JSPX(DRY)中不再重复自己时,我觉得必须牺牲宝贵的时间并创建一个标记库,因为没有内联宏.
我觉得我必须在JSP/X中遗漏一些东西.
显然,URI路径中不允许使用括号.
我不确定这是否是一个Tomcat问题,但我收到包含路径的请求].
换一种说法
request.getRequestURL() == "http://localhost:8080/a]b"
request.getRequestURI() == "/a]b"
Run Code Online (Sandbox Code Playgroud)
BTW getRequestURL()和URI通常是转义即为 http://localhost:8080/a b
request.getRequestURL() == "http://localhost:8080/a%20b"
Run Code Online (Sandbox Code Playgroud)
所以,如果你尝试这样做:
new URI("http://localhost:8080/a]b")
new URI(request.getRequestURL())
Run Code Online (Sandbox Code Playgroud)
它会因URI解析异常而失败.如果我逃脱将使%20双重逃脱的路径.
如何将Servlet请求URL转换为URI?
我负责的是给我正确编码(和或损坏)字符串外部Web服务(UTF-8)是最有可能无论是ISO LATIN或WINDOWS-1252,但现在UTF-8(和或混合物ISO/WINDOWS/UTF-8).可爱的帽子(Â)比比皆是.
我显然无法修复外部Web服务如何存储其字符串以便丢失信息.因此,我所知道的100%翻译的希望是不可能的.
但我希望有人用Java编写了一个启发式字符映射库(不太可能有人会输入A帽子).
如果没有,我想我可以移植这个家伙PHP代码:https://stackoverflow.com/a/3521340/318174
更新和说明:像@VGR这样的简单转换将无效.我没有原始字节.数据在端点处转换不正确(SOAP服务器可能getBytes(/*with out correct encoding*/)已完成,或者数据可能以不正确的格式存储).当您将字节转换为Java中的字符串时,除非编码在任何地方都相同,否则不会保留数据.如果您想到像ASCII< - > 这样的东西,这很容易理解UTF-8.使用Windows-1252或ISO Latin更复杂,因为数据不会丢失,但经常会混淆.那是因为那些编码可以是两个字节而不是它的子集UTF-8.
如果您不相信我,您可以尝试getBytes()使用各种编码进行反复操作,并且会看到数据损坏和数据丢失.
java ×8
scala ×2
utf-8 ×2
algorithm ×1
annotations ×1
aop ×1
aspectj ×1
atomic ×1
build ×1
clob ×1
clojure ×1
concurrency ×1
groovy ×1
heuristics ×1
jar ×1
jdbc ×1
jspx ×1
np-complete ×1
onejar ×1
postgresql ×1
python ×1
servlets ×1
spring ×1
taglib ×1
tagx ×1
templates ×1
tomcat ×1
uri ×1
url ×1