小编fvd*_*cin的帖子

从Liquibase变更集中获取输出SQL

我的Spring Boot应用程序尝试启动时出现SQL语法错误.它无法实例化SpringLiquibase bean,因为更改集的输出SQL会导致语法错误.我需要检查从Liquibase生成的SQL以找出错误.我怎样才能做到这一点?

java spring liquibase spring-boot

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

通过HTTP使用MSMQ.如何解决队列?

我目前正在尝试将MSMQ与C#和.NET一起使用以实现IPC.我试图了解它是如何工作的,我对访问MSMQ队列时路径名和格式名之间差异感到很困惑.我在以下帖子中发现了一些类似的问题:

  1. MSMQ通过HTTP调用未到达目标队列
  2. 如何设置MSMQ服务器,以便可以通过Internet访问它
  3. 如何通过相应的WCF绑定使用MSMQ over http?

但是,他们都使用MSMQ和WCF,我现在不想使用WCF.

我想要实现的目标如下:

客户端:通过http将数据发送到队列.

服务器:通过http从队列接收数据.

我的观点是,我希望服务器,客户端和队列都托管在可能不同的计算机中.(现在我正在测试同一台机器上的所有东西).

这里我有以下代码,它们展示了我的想法:

首先,我创建队列:

if(!System.Messaging.MessageQueue.Exists(@".\Private$\SimplestExamplePrivateQueue");
    System.Messaging.MessageQueue.Create(@".\Private$\SimplestExamplePrivateQueue");
Run Code Online (Sandbox Code Playgroud)

客户代码:

然后,在客户端,我有一个回调函数,当用户按下按钮发送消息时调用该函数.

private void button1_Click(object sender, System.EventArgs e)
{
    try
    {           
        // Create a connection to the queue
        System.Messaging.MessageQueue mq = new System.Messaging.MessageQueue(@"FormatName:Direct=http://localhost/msmq/Private$/SimplestExamplePrivateQueue");

        // Create a point object to send
        Point myPoint = new Point (Convert.ToInt32(textBox2.Text), Convert.ToInt32(textBox3.Text)) ;

        // Send object 
        mq.Send (myPoint) ;
    }

    // Catch the exception that signals all types …
Run Code Online (Sandbox Code Playgroud)

.net c# msmq

7
推荐指数
1
解决办法
7379
查看次数

ww SimpleDateFormat的奇怪行为

任何人都可以解释为什么我在尝试解析日期时获得这些值?我尝试了三种不同的输入,如下所示:

1)2013年第三周

Date date = new SimpleDateFormat("ww.yyyy").parse("02.2013");
Calendar cal = Calendar.getInstance();
cal.setTime(date);
System.out.println(cal.get(Calendar.WEEK_OF_YEAR) + "." + cal.get(Calendar.YEAR));
Run Code Online (Sandbox Code Playgroud)

哪些输出:( 02.2013如我所料)

2)2013年第一周

Date date = new SimpleDateFormat("ww.yyyy").parse("00.2013");
Calendar cal = Calendar.getInstance();
cal.setTime(date);
System.out.println(cal.get(Calendar.WEEK_OF_YEAR) + "." + cal.get(Calendar.YEAR));
Run Code Online (Sandbox Code Playgroud)

哪些产出:( 52.2012这对我来说很好,因为2013年的第一周也是2012年的最后一周)

3)2013年第二周

Date date = new SimpleDateFormat("ww.yyyy").parse("01.2013");
Calendar cal = Calendar.getInstance();
cal.setTime(date);
System.out.println(cal.get(Calendar.WEEK_OF_YEAR) + "." + cal.get(Calendar.YEAR));
Run Code Online (Sandbox Code Playgroud)

哪个输出:( 1.2012这对我来说完全没有意义)

有谁知道为什么会这样?我需要以格式(一周中的一周)解析日期.(年).我使用错误的模式吗?

java parsing simpledateformat

7
推荐指数
1
解决办法
515
查看次数

MassTransit 是否支持基于 HTTP 传输的 MSMQ?

HTTP 传输自 MSMQ 3.0 起就已可用,但恐怕 MassTransit 不提供使用 HTTP 协议作为队列之间的传输协议的功能。

这里有一个非常类似的问题,尚未得到完全解答。

有谁知道客户端是否可以订阅总线并通过 HTTP 发送/接收消息?这是我愿意实现的架构:

我将在本地网络中拥有 2 台计算机

  • 计算机 A运行服务器应用程序和 MassTransit.RuntimeServices
  • 计算机 B运行客户端应用程序,该应用程序向 A 发送消息

我希望他们之间的通信通过http 完成。

我尝试将地址更改为UseSubscriptionServicehttp而不是msmq,但它不起作用。如果我将计算机 A 的MSMQ 服务设置为强化模式,则计算机 B上运行的客户端应用程序在尝试订阅mt_subscriptions.

Bus.Initialize(sbc =>
            {
                sbc.UseMsmq();
                sbc.VerifyMsmqConfiguration();
                sbc.UseMulticastSubscriptionClient();
                sbc.ReceiveFrom("msmq://localhost/test_queue_client");
                sbc.UseSubscriptionService("msmq://m3-dev1/mt_subscriptions"); // maybe I could use http instead of msmq, but it doesn't work
            });
Run Code Online (Sandbox Code Playgroud)

有什么线索吗?

.net c# msmq masstransit

3
推荐指数
1
解决办法
1279
查看次数

使用Java正则表达式解析Drools规则文件

我有兴趣使用正则表达式解析Drools规则文件.有一个包含整个.drl文件内容的字符串,我想有4个子字符串:

  1. 一个内容为的子字符串 <name>
  2. 一个内容为的子字符串 <attribute>
  3. 一个内容为的子字符串 <conditional element>
  4. 一个内容为的子字符串 <action>

根据官方文档,Drools规则具有以下结构:

rule "<name>"
    <attribute>*
when
    <conditional element>*
then
    <action>*
end
Run Code Online (Sandbox Code Playgroud)

我尝试过使用这种模式,但效果不佳:

^rule"(.|\n|\r|\t)+"(.|\n|\r|\t)+\bwhen\b(.|\n|\r|\t)+\bthen\b(.|\n|\r|\t)+\bend\b?$
Run Code Online (Sandbox Code Playgroud)

有没有人知道我该怎么办?

java regex drools

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