我知道WF设计师有重新托管能力.由于它是基于WPF的,我认为它可以在web中使用silverlight进行重新托管.
有没有人对此有任何经验?或者,有没有人知道一个简单而强大的基于Web的WF工作流设计器解决方案?
我正在使用CXF 在Spring上下文中托管Web服务,这使得JAX-WS成为默认绑定.我正在使用Java-First,这意味着带注释的端点接口和类.
由于JAX-WS的默认绑定使用XMLGregorianCalendar类来表示日期,因此当我调用我的Web服务传递时,java.util.Date它会转换为XMLGregorianCalendar服务器上的.
关于如何更改此绑定日期值的帖子和文档很多java.util.Date,但都与wsdl2java工具有关,例如:
<jaxws:bindings wsdlLocation="YOUR_WSDL_LOCATION"
xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<jaxws:bindings node="wsdl:definitions/wsdl:types/xs:schema[@targetNamespace='THE_NAMESPACE_OF_YOUR_SCHEMA']">
<jxb:globalBindings xmlns:jxb="http://java.sun.com/xml/ns/jaxb" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<jxb:javaType name="java.util.Date" xmlType="xs:dateTime"
parseMethod="org.apache.cxf.tools.common.DataTypeAdapter.parseDateTime"
printMethod="org.apache.cxf.tools.common.DataTypeAdapter.printDateTime"/>
</jxb:globalBindings>
</jaxws:bindings>
</jaxws:bindings>
Run Code Online (Sandbox Code Playgroud)
由于我使用的是Spring,我正在寻找一种在Spring上下文配置文件(或CXF配置文件)中执行此操作的方法.我文件的片段:
<jaxws:endpoint id="jaxwsDocumentGroupWsEndpoint" implementor="#documentGroupWsEndpoint" address="/documentGroup">
<!-- SOMETHING TO WRITE HERE TO TELL CXF TO USE java.util.Date ??? -->
</jaxws:endpoint>
Run Code Online (Sandbox Code Playgroud) Unicode字符中有多个范围表示数字,为其char.IsDigit返回true.例如:
bool b1 = char.IsDigit('\uFF12'); // full-width '2' -> true
bool b2 = char.IsDigit('\u0665'); // true
bool b3 = char.IsDigit('5'); // true
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种方法来获得这些字符的数字等价物.请注意,int.Parse(...)它不起作用,因为它期望输入字符在基本unicode范围内('0'..'9').
这相当于Java的Character.digit(...)行为.
由于.NET框架的char.IsDigit方法正确地将这些字符标识为数字,我希望它也具有此功能,但我找不到任何东西.
我有一堆固定宽度的div元素,使用inline-block显示类型进行内联流动.这会在行的末尾留下一个空的空间(下一行div无法安装并包裹到下一行).
我想做的是,将行上的所有div均匀地展开以填充行,类似于文本的"Justify"对齐.
换句话说,我希望在div元素上具有最小宽度,并在单行中尽可能多地填充它们,并填充整行.
这是我的示例HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<style>
#container { margin: 100px; padding: 10px; border: 1px solid blue; }
.item { margin: 10px; width: 300px; min-width: 300px; display: inline-block; border: 1px solid red; }
</style>
</head>
<body>
<div id="container">
<div class="item">Item One</div>
<div class="item">Item Two</div>
<div class="item">Item Three</div>
<div class="item">Item Four</div>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
纯CSS + HTML有可能吗?或者我是否必须编写脚本来实现此结果?
更新:由于人们一直建议使用百分比宽度来装配单行中的项目,我必须注意到这不是这个问题的意图.我希望有类似"Justified"的文字,但是有块.项目数量是可变的,可能太多.
块需要具有相同的大小,具有默认(最小)宽度,如果需要,将导致它们换行到下一行,并且需要通过扩展子宽度来填充容器的宽度.
更新2:
目前的样本产生如下:
|--------------------------- Container …Run Code Online (Sandbox Code Playgroud) 我需要一个多线程Map对象来在我的Web服务器的缓存中使用,我需要有null密钥.
HashMap允许我有空键,但ConcurrentHashMap没有.我试图创建一个HashMap使用的同步版本,Collections.synchronizedMap(new HashMap())但它也不接受null密钥.
有没有我可以使用的替代方案,而不必实现某种方式来包装null密钥?
我正在寻找一种方法来确定单个正则表达式是否与整个字符串、字符串的开头或 C# 中的一部分匹配。
在 Java 中,您可以构造一个Matcher对象,并使用方法matches()来检查它是否与整个输入匹配,lookingAt()查看它是否与输入的开头匹配,以及find()查看字符串中是否存在任何匹配。
在.NET中,我可以使用Match.Success来查看是否有任何匹配,并检查Match.Index和Match.Length是否满足上述条件。
问题是,如果找到较小的匹配项,它不会尝试匹配整个输入。例如,如果将输入“1234”提供给 Regex @"\d{2}|\d{4}",它将匹配前两位数字。
在这种情况下,我需要用Regex该模式构建另一个@"^(\d{2}|\d{4})$"来测试整个输入,然后测试另一个以查看它是否与开头匹配。
有没有办法告诉同一个Regex类更喜欢整个输入匹配,这样我就不需要为此创建(和编译)另一个正则表达式?
编辑:问题不是关于模式,它只是一个例子来说明我的意思。
将这些类视为源:
public class SourceParent
{
public int X { get; set; }
public SourceChild1 Child1 { get; set; }
public SourceChild2 Child2 { get; set; }
}
public class SourceChild1
{
public int A { get; set; }
public int B { get; set; }
public int C { get; set; }
public int D { get; set; }
}
public class SourceChild2
{
public int I { get; set; }
public int J { get; set; }
public int …Run Code Online (Sandbox Code Playgroud) 我正在使用子类HttpServletRequestWrapper对请求参数进行一些翻译,并在第一次请求时缓存翻译的值.例如,第一次getQueryString()被调用,我调用super.getQueryString()并计算我想要的结果并将其保存在字段中,然后返回它.下次,我只使用缓存的结果.
除非有一些"转发",否则这种方法就像魅力一样.转发请求时,Tomcat会替换原始请求,因此我的缓存查询字符串不会更改,转发的页面将获取原始查询字符串,而不是转发到的字符串.
覆盖setRequest()清除缓存的方法也无济于事,好像请求被包装两次一样,它调用setRequest内包装器(不是我的),我无法知道它何时发生.
我正在寻找一种在包装的请求层次结构发生变化时得到通知的方法,以便在有"转发"时我可以清除缓存.
Lucene文档指出,IndexSearcher和IndexWriter的单个实例应该用于整个应用程序中的每个索引,以及所有线程.此外,在重新打开索引之前,对索引的写入将不可见.
所以,我试图在多线程设置中遵循这些指南.(一些线程编写,多个用户线程搜索).我不想在每次更改时重新打开索引,而是希望保持搜索器实例不超过一定的时间(比如20秒).
中央组件负责打开索引读取器和编写器,并保留单个实例并同步线程.我跟踪上次任何用户线程访问IndexSearcher的时间,以及它变脏的时间.如果有人需要在更改过去20秒后访问它,我想关闭搜索器并重新打开它.
问题是我不确定先前对搜索者(由其他线程制作)的请求是否已经完成,因此我可以关闭IndexSearcher.这意味着如果我关闭并重新打开在所有线程之间共享的单个IndexSearcher实例,则可能会在其他某个线程中同时进行搜索.
更糟糕的是,这是理论上可能发生的事情:可以同时执行多次搜索.(假设有数千名用户在同一索引上运行搜索).单个IndexSearcher实例可能永远不会被释放,因此可以关闭它.理想情况下,我想创建另一个IndexSearcher并将新请求指向它(虽然旧的仍然打开并运行之前已请求的搜索).当旧实例上运行的搜索完成后,我想关闭它.
同步IndexSearcher(或IndexWriter)的多个用户以调用close()方法的最佳方法是什么?Lucene是否为此提供任何功能/设施,或者它应该完全由用户代码完成(比如使用搜索器计算线程,并在每次使用时增加/减少计数)?
有关于上述设计的任何建议/想法吗?
java ×4
c# ×3
.net ×1
automapper ×1
char ×1
concurrency ×1
css ×1
cxf ×1
designer ×1
forwarding ×1
hashmap ×1
html ×1
jax-ws ×1
lucene ×1
numbers ×1
parsing ×1
regex ×1
servlets ×1
silverlight ×1
tomcat ×1
web-services ×1
wrapper ×1