小编bez*_*max的帖子

字符串操作:拆分分隔数据

我需要从星号分隔的数据中拆分一些信息。

数据格式:

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)

java string

5
推荐指数
1
解决办法
253
查看次数

环境特定的配置文件 - 最佳实践?

我有一个带有配置文件的应用程序,其中有很多特定于环境的设置。我还有很多可以部署该应用程序的环境。

使该配置特定于环境的最佳实践是什么?

目前我正在将配置文件所在的目录添加到 JVM 类路径中。这样,应用程序只需从类路径加载配置文件并使用在那里找到的内容即可。

然而,最近我被告知这是一个不好的做法,我应该考虑使用 JNDI 来实现此目的。

那么,您有什么建议可以使部署和开发过程在我的情况下尽可能轻松?

提前致谢。

java deployment configuration jakarta-ee

5
推荐指数
1
解决办法
6651
查看次数

在保留xsi:type的同时合并文档

我有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库无法完成此任务,可能还有一些其他库可用于完成我的任务?

java xml dom xsitype

5
推荐指数
1
解决办法
2010
查看次数

如何最大限度地减少UDP丢包

我每秒接收~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 udp multicast multicastsocket

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

java线程可见性

当我读到" 实践中的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.所有原因是我太幸运了?

java concurrency

5
推荐指数
1
解决办法
468
查看次数

泽西webservice没有返回jsonp

我正在尝试创建一个将返回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

jsonp jersey

4
推荐指数
1
解决办法
2987
查看次数

自动化测试用例执行 - 何时停止

我们的系统有大约100个测试用例.我们正在尝试为它构建一个自动化测试套件.

在运行测试时说第25次测试失败.我们的自动化测试系统应该在这里拯救并停止执行,或者它应该只是将其标记为失败并继续尝试执行第26次测试用例(即每个测试周期都将执行所有100个测试用例,而不管任何失败的测试用例).

在失败的测试用例(例如,没有25)之后,如果系统需要被重置以执行测试用例26,那么它将被处理.

谢谢

詹姆士

testing integration-testing automated-tests unit-testing system-testing

4
推荐指数
1
解决办法
326
查看次数

Python-Disabling Action

我正在为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)没有成功.

python pyqt

4
推荐指数
1
解决办法
3475
查看次数

使用grails中的动态查找器搜索值

我想通过两个领域,其使用动态查找器来搜索statusOpenOn(date).这个查询工作得很好:

 render(view:'list', model:[incidentInstanceList:Incident.findAllByStatusIlikeAndOpenOnGreaterThan("closed",new Date()-1,[sort:"id",order:"desc"])])
Run Code Online (Sandbox Code Playgroud)

但是现在我试图通过三个字段搜索动态查找器,即UserId:statusOpenOn(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)

请指导我解决这个问题.

grails groovy

2
推荐指数
1
解决办法
2281
查看次数

域驱动设计 - 跨不同聚合的命令的复杂验证

我只是从DDD开始,目前正试图掌握用它做不同事情的方法.我正在尝试使用CQRS使用异步事件(没有事件源)来设计它.目前我坚持使用命令验证.我已经读过这个问题:在域驱动设计中进行验证,但是,没有一个答案似乎涵盖了不同聚合根的复杂验证.


假设我有这些聚合根:

  • 客户端 - 包含已启用服务的列表,每个服务都可以具有折扣的价值对象列表及其有效性.
  • DiscountOrder - 在给定客户的某些服务上实现更多折扣的订单,包含具有折扣配置的订单商品.
  • BillCycle - 生成账单的每个期间都由自己的账单周期描述.

这是用例:

可以提交折扣订单.折扣顺序中的每个新折扣期不应与任何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)

language-agnostic validation domain-driven-design cqrs

2
推荐指数
1
解决办法
943
查看次数