我需要从星号分隔的数据中拆分一些信息。
数据格式:
NAME*ADRESS LINE1*ADDRESS LINE2
Run Code Online (Sandbox Code Playgroud)
规则:
1. Name should be always present
2. Address Line 1 and 2 might not be
3. There should be always three asterisks.
Run Code Online (Sandbox Code Playgroud)
样品:
MR JONES A ORTEGA*ADDRESS 1*ADDRESS2*
Name: MR JONES A ORTEGA
Address Line1: ADDRESS 1
Address Line2: ADDRESS 2
A PAUL*ADDR1**
Name: A PAUL
Address Line1: ADDR1
Address Line2: Not Given
Run Code Online (Sandbox Code Playgroud)
我的算法是:
1. Iterate through the characters in the line
2. Store all chars in a temp variables until first * is …Run Code Online (Sandbox Code Playgroud) 我有一个带有配置文件的应用程序,其中有很多特定于环境的设置。我还有很多可以部署该应用程序的环境。
使该配置特定于环境的最佳实践是什么?
目前我正在将配置文件所在的目录添加到 JVM 类路径中。这样,应用程序只需从类路径加载配置文件并使用在那里找到的内容即可。
然而,最近我被告知这是一个不好的做法,我应该考虑使用 JNDI 来实现此目的。
那么,您有什么建议可以使部署和开发过程在我的情况下尽可能轻松?
提前致谢。
我有2个Document对象,文档包含类似的XML.例如:
<tt:root xmlns:tt="http://myurl.com/">
<tt:child/>
<tt:child/>
</tt:root>
Run Code Online (Sandbox Code Playgroud)
而另一个:
<ns1:root xmlns:ns1="http://myurl.com/" xmlns:ns2="http://myotherurl.com/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:child/>
<ns1:child xsi:type="ns2:SomeType"/>
</ns1:root>
Run Code Online (Sandbox Code Playgroud)
我需要将它们合并到1个带有1个根元素和4个子元素的文档中.问题是,如果我使用document.importNode函数进行合并,它可以在任何地方正确处理命名空间但是xsi:type元素.所以我得到的结果是:
<tt:root xmlns:tt="http://myurl.com/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<tt:child/>
<tt:child/>
<ns1:child xmlns:ns1="http://myurl.com/"/>
<ns1:child xmlns:ns1="http://myurl.com/" xsi:type="ns2:SomeType"/>
</tt:root>
Run Code Online (Sandbox Code Playgroud)
如您所见,ns2用于xsi:type但未在任何地方定义.有没有自动解决这个问题的方法?
谢谢.
添加:
如果使用默认的java DOM库无法完成此任务,可能还有一些其他库可用于完成我的任务?
我每秒接收~3000个UDP数据包,每个数据包大小约为200字节.我写了一个java应用程序,它监听那些UDP数据包并将数据写入文件.然后,服务器以先前指定的速率发送15000条消息.写入文件后,它只包含~3500条消息.使用wireshark我确认我的网络接口收到了所有15000条消息.之后我尝试更改套接字的缓冲区大小(最初为8496bytes):
(java.net.MulticastSocket)socket.setReceiveBufferSize(32*1024);
Run Code Online (Sandbox Code Playgroud)
该更改将保存的消息数量增加到~8000.我不断将缓冲区大小增加到1MB.之后,保存的消息数量达到~14400.将缓冲区大小增加到更大的值不会增加保存的消息数.我想我已达到允许的最大缓冲区大小.不过,我需要捕获网络接口收到的所有15000条消息.
任何帮助,将不胜感激.提前致谢.
当我读到" 实践中的java并发 "c03时,我对以下程序感到困惑:
public class NoVisibility {
private static boolean ready;
private static int number;
private static class ReaderThread extends Thread {
public void run() {
while (!ready)
Thread.yield();
System.out.println(number);
}
}
public static void main(String[] args) {
new ReaderThread().start();
number = 42;
ready = true;
}
}
Run Code Online (Sandbox Code Playgroud)
由于重新排序和线程可见性,循环可能永远不会停止,或输出可能为零,但我已尝试多次,输出始终为42.所有原因是我太幸运了?
我正在尝试创建一个将返回jsonp的web服务.目前它只返回json
这是我的代码:
@Path("/jsonp")
public class JsonpWebservice {
@GET
@Produces({MediaType.APPLICATION_JSON,MediaType.APPLICATION_XML})
public JSONWithPadding readAllP(@QueryParam("jsoncallback") @DefaultValue("jsoncallback") String jsoncallback)
{
ToolKitBean tkBean = new ToolKitBean();
tkBean.setNegativeCount("10");
tkBean.setPositiveCount("11");
System.out.println("jsoncallback: " + jsoncallback);
return new JSONWithPadding( new GenericEntity<ToolKitBean>(tkBean) {}, jsoncallback);
}
}
Run Code Online (Sandbox Code Playgroud)
我还定义了一个JAXBContext解析器.当我看到这个webservice的响应时,我看到了json而不是jsonp - {"negativeCount":"10","positiveCount":"11"}
有什么想法,我需要做什么才能让jsonP从这个webservice返回?
谢谢DAmien
我们的系统有大约100个测试用例.我们正在尝试为它构建一个自动化测试套件.
在运行测试时说第25次测试失败.我们的自动化测试系统应该在这里拯救并停止执行,或者它应该只是将其标记为失败并继续尝试执行第26次测试用例(即每个测试周期都将执行所有100个测试用例,而不管任何失败的测试用例).
在失败的测试用例(例如,没有25)之后,如果系统需要被重置以执行测试用例26,那么它将被处理.
谢谢
詹姆士
testing integration-testing automated-tests unit-testing system-testing
我正在为QGIS开发python插件.我列出了菜单栏的所有数据库连接,使用以下代码:
for key in sorted( self.actionsDb.iterkeys(), key=lambda x: x.lower() ):
a = self.actionsDb[key]
self.menuDb.addAction(a)
a.setCheckable(True)
self.connect(a, SIGNAL("triggered(bool)"), self.dbConnectSlot)
Run Code Online (Sandbox Code Playgroud)
在某些' if '条件下,我想在菜单栏中禁用其中一个操作.
示例:在Database菜单下,我们有两个列出的数据库连接:
Database
-- localhost
-- 192.168.5.6
Run Code Online (Sandbox Code Playgroud)
我想根据具体情况禁用其中一些.我试过a.setCheckable(false)没有成功.
我想通过两个领域,其使用动态查找器来搜索status和OpenOn(date).这个查询工作得很好:
render(view:'list', model:[incidentInstanceList:Incident.findAllByStatusIlikeAndOpenOnGreaterThan("closed",new Date()-1,[sort:"id",order:"desc"])])
Run Code Online (Sandbox Code Playgroud)
但是现在我试图通过三个字段搜索动态查找器,即UserId:status和OpenOn(date):
render(view:'list', model:[incidentInstanceList:Incident.findAllByStatusIlikeuserIdIlikeAndOpenOnGreaterThan("closed","${session.user.userId}",new Date()-1,[sort:"id",order:"desc"])])
Run Code Online (Sandbox Code Playgroud)
此查询无法正常运行并显示错误:
No signature of method: app.Incident.findAllByStatusIlikeuserIdIlikeAndOpenOnGreaterThan() is applicable for argument types: (java.lang.String, org.codehaus.groovy.runtime.GStringImpl, java.util.Date, java.util.LinkedHashMap) values: [closed, tt10004, Wed Aug 24 15:12:21 IST 2011, [sort:id, order:desc]] Possible solutions: findAllByStatusIlikeuserIdIlikeAndCreatedOnGreaterThan(java.util.List)
Run Code Online (Sandbox Code Playgroud)
请指导我解决这个问题.
我只是从DDD开始,目前正试图掌握用它做不同事情的方法.我正在尝试使用CQRS使用异步事件(没有事件源)来设计它.目前我坚持使用命令验证.我已经读过这个问题:在域驱动设计中进行验证,但是,没有一个答案似乎涵盖了不同聚合根的复杂验证.
假设我有这些聚合根:
这是用例:
可以提交折扣订单.折扣顺序中的每个新折扣期不应与任何BillCycles重叠.在一项服务上,不能同时激活两种相同类型的折扣.
基本上,在CRUD风格中使用Hibernate,这看起来类似于(java代码,但问题与语言无关):
public class DiscountProcessor {
...
@Transactional
public void processOrder(long orderId) {
DiscOrder order = orderDao.get(orderId);
BillCycle[] cycles = billCycleDao.getAll();
for (OrderItem item : order.getItems()) {
//Validate billcycle overlapping
for (BillCycle cycle : cycles) {
if (periodsOverlap(cycle.getPeriod(), item.getPeriod())) {
throw new PeriodsOverlapWithBillCycle(...);
}
}
//Validate discount overlapping
for (Discount d : item.getForService().getDiscounts()) {
if (d.getType() == item.getType() && periodsOverlap(d.getPeriod(), item.getPeriod())) {
throw new PeriodsOverlapWithOtherItems(...);
} …Run Code Online (Sandbox Code Playgroud) java ×5
concurrency ×1
cqrs ×1
deployment ×1
dom ×1
grails ×1
groovy ×1
jakarta-ee ×1
jersey ×1
jsonp ×1
multicast ×1
pyqt ×1
python ×1
string ×1
testing ×1
udp ×1
unit-testing ×1
validation ×1
xml ×1
xsitype ×1