我的Spring Boot应用程序尝试启动时出现SQL语法错误.它无法实例化SpringLiquibase bean,因为更改集的输出SQL会导致语法错误.我需要检查从Liquibase生成的SQL以找出错误.我怎样才能做到这一点?
我目前正在尝试将MSMQ与C#和.NET一起使用以实现IPC.我试图了解它是如何工作的,我对访问MSMQ队列时路径名和格式名之间的差异感到很困惑.我在以下帖子中发现了一些类似的问题:
但是,他们都使用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) 任何人都可以解释为什么我在尝试解析日期时获得这些值?我尝试了三种不同的输入,如下所示:
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这对我来说完全没有意义)
有谁知道为什么会这样?我需要以格式(一周中的一周)解析日期.(年).我使用错误的模式吗?
HTTP 传输自 MSMQ 3.0 起就已可用,但恐怕 MassTransit 不提供使用 HTTP 协议作为队列之间的传输协议的功能。
这里有一个非常类似的问题,尚未得到完全解答。
有谁知道客户端是否可以订阅总线并通过 HTTP 发送/接收消息?这是我愿意实现的架构:
我将在本地网络中拥有 2 台计算机
我希望他们之间的通信通过http 完成。
我尝试将地址更改为UseSubscriptionService,http而不是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)
有什么线索吗?
我有兴趣使用正则表达式解析Drools规则文件.有一个包含整个.drl文件内容的字符串,我想有4个子字符串:
<name><attribute><conditional element><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)
有没有人知道我该怎么办?