小编Вит*_*вич的帖子

动态配置消息驱动Bean中的MappedName注释

使用消息驱动Bean时,在注释中硬编码接收消息的目标名称 @MessageDriven(mappedName = "someDestinationName")

有没有办法在运行时添加此信息?Bellow是Message Driven Bean类的示例.

package mdb.beans;

import javax.ejb.ActivationConfigProperty;
import javax.ejb.MessageDriven;
import javax.jms.Message;
import javax.jms.MessageListener;

@MessageDriven(mappedName = "someDestinationName", activationConfig =
{
    @ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue =   "Auto-acknowledge"),
    @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue")
})
public class MDBSample implements MessageListener 
{    
    public MDBSample() 
    {
        // constructor
    }

    @Override
    public void onMessage(Message message) 
    {
        // logic when message received
    }
}
Run Code Online (Sandbox Code Playgroud)

java annotations java-ee message-driven-bean ejb-3.0

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

在特定时刻查找无限数字流中特定数字的计数

我在最近的一次采访中遇到了这个问题:

你有一个范围内的输入数字流,0 to 60000你有一个函数,它将从该范围获取一个数字,并返回该数字的出现次数,直到那一刻.提供合适的数据结构/算法来实现该系统.

我的解决方案是:

创建一个大小为60001的数组,指向位向量.这些位向量将包含传入数字的计数,并且传入的数字也将用于索引相应数字的数组.随着计数变得太大而不能容纳它们,位向量将动态增加.

因此,如果数字100numbers/sec按此速率进行,则在1百万年内,总数将为= (100*3600*24)*365*1000000 = 3.2*10^15.在最坏的情况下,流中的所有数字都是相同的ceil((log(3.2*10^15) / log 2) )= 52bits,如果数字是均匀分布的(3.2*10^15) / 60001 = 5.33*10^10,那么每个数字的出现次数将需要36 bits每个数字的总数.因此,假设4byte指针我们需要(60001 * 4)/1024 = 234 KB数组的内存,对于具有相同数字的情况,我们需要位向量大小= 52/8 = 7.5 bytes仍然大约234KB.而对于另一种情况,我们需要(60001 * 36 / 8)/1024 = 263.7 KB位向量总计约500KB.因此,用普通的PC和内存来做这件事是非常可行的.

但是访问者说,因为它是无限的流,它最终会溢出并给我提示,如果有很多PC我们怎么能这样做,我们可以在它们之间传递消息或考虑文件系统等.但我一直在想是否这个解决方案当时没有工作,其他人也会这样.不用说,我没有得到这份工作.

如何用更少的内存来解决这个问题?你能想到另一种方法(使用PC网络)吗?

memory algorithm distributed-computing stream data-structures

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

如何在MDB中停止回滚?

我有一个onMessage方法,我从队列中恢复一个ObjectMessage并使用该信息来填充和持久化JPA实体对象.但是当持久化实体对象出现问题时,它会重新执行onMessage().我的猜测是它将ObjectMessage推回队列,因此onmessage再次被执行.这样我就进入了无限循环.如何停止onMessage()再次执行或控制执行的次数.这是我的代码.saveAuditData(auditInfo)发生错误.

public void onMessage(Message inMessage) {
   log.debug("Entering onMessage() Method.");
   AuditInfo auditInfo = null;
   try {
       ObjectMessage om = (ObjectMessage) inMessage;  
       auditInfo = (AuditInfo) om.getObject();
       log.debug("Message received : " + auditInfo.getApiUsed());
       log.debug("Calling saveAuditData().");
       saveAuditData(auditInfo);
       log.debug("Leaving onMessage() Method.");
   }
   catch (Exception e) {
       e.printStackTrace();
       log.debug("Error persisting Audit Info.",e);
       log.debug("Printing Audit Info:");
       log.debug(auditInfo.toString());
   }

}
private void saveAuditData(AuditInfo auditInfo) {
    log.debug("Entering saveAuditData() Method.");
    log.debug("Populating Audit Object.");
    IdmAudit idmAudit = new IdmAudit();
    idmAudit.setApiUsed("API");
    idmAudit.setAppClientIpAddress("localhost");
    idmAudit.setAuditActivity("activity1");
    idmAudit.setAuditData(auditInfo.getAuditData());
    idmAudit.setAuditGroup(AUDIT_GROUP);
    idmAudit.setAuditType("Type");
    idmAudit.setIdmAuditCreationDate(new Date());
    idmAudit.setLocationCd("Location");
    idmAudit.setPurgeDate(null);
    idmAudit.setSubscriberId(new BigDecimal(0)); …
Run Code Online (Sandbox Code Playgroud)

java transactions exception-handling rollback message-driven-bean

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

用指针理解C宏

我是一名Java开发人员,我对C宏的语法不是很熟悉.我正在研究Deitel&Deitel的书,但它没有帮助.

我无法理解这个宏的含义:

#define _GetFrontItem(d,q)  ( (d)->itemCache + ( (q)*(d)->block_size +  \
                              (d)->offset[q] % (d)->block_size )*(d)->itemSize)
Run Code Online (Sandbox Code Playgroud)

d是指向结构的指针,q是一个size_t.

在此文件中使用.

你能帮我理解一下吗?这个宏完成了什么?为什么写它的方式?有没有更清晰的方法来编写这个宏?

c macros pointers

4
推荐指数
2
解决办法
860
查看次数

Hbase Java API示例

我对HBase开发非常陌生。我正在跟踪链接。我正在使用Hbase-1.1.2版本。使用示例代码时,我会收到警告。不推荐使用几种方法(例如,新的HBaseAdmin(conf);)。我看到HBaseAdmin类具有3个构造函数。在3个构造函数中,有2个已弃用。只有一个接受“ ClusterConnection”作为参数的构造函数。我不知道我是否遵循正确的链接来使用HBase。可以使用最新的hbase库提供示例示例吗?我将HBase作为独立模式运行。

java hadoop hbase

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

Yesod:函数中的非详尽模式是授权的

在Yesod脚手架项目中,我添加了一个新路由和一个新的处理程序.

我的错误如下:

29/Mar/2017:11:25:22 +0200 [Error#yesod-core] Foundation.hs:(137,5)-(144,45): Non-exhaustive patterns in function isAuthorized
 @(yesod-core-1.4.32-6HthMZNCl0sEMRz6GJ4QO1:Yesod.Core.Class.Yesod ./Yesod/Core/Class/Yesod.hs:693:5)
29/Mar/2017:11:25:22 +0200 [Debug#SQL] SELECT `ident`,`password` FROM `user` WHERE `id`=? ; [PersistInt64 1]
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

haskell authorization yesod

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

playframework中的日期2.0-java在表单中给出了无效值

我有一个表单,我定义:

@Required
@Formats.DateTime(pattern="dd/MM/yyyy")
    public Date mDate;
Run Code Online (Sandbox Code Playgroud)

现在我的模板我有:

@helper.inputDate(
                myForm("mDate")
        )
Run Code Online (Sandbox Code Playgroud)

但是当我提交表单时,我得到一个错误作为无效值.

请告知如何克服此错误.

谢谢aj

java forms date playframework-2.0

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

如何在BeanIO中设置字符编码?

我有一个固定长度的流.我想将编码设置为Windows-1252或latin1.

我怎样才能做到这一点?

通过XML会更好,但如果代码是唯一的方式,它也可以.

java xml character-encoding bean-io

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

斯坦福解析器 - 用金融工具标记

我有一套财务文件(固定条款存款文件,信用卡文件).我想在这些文件中自动识别和标记金融实体/工具.

例如,如果文件中包含此短语,则"保留以利息偿还的权利,恕不另行通知".我想识别与之相关的财务条款,并用它标记,因为这句话是"可调用的".对于这个短语"允许提前提款",相关的财务条款是"可投放的",所以如果这个短语在文件中,我想用术语"Putable"标记它.

财务条款将来自金融业商业本体论.有没有可能为此目的使用斯坦福解析器?我可以将POS标签用于此目的吗?我可能需要用金融工具培训斯坦福大学的解析器,如果有可能我可以如何培训斯坦福大学的解析器来识别金融工具?

java finance nlp machine-learning stanford-nlp

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

JPA:命名查询中的错误

我得到了异常,org.hibernate.HibernateException: Errors in named queries: ElaborazionePagamentiMaggioriOneri.estrai但命名查询对我来说是正确的.我也明白了

org.hibernate.hql.ast.QuerySyntaxException: ElaborazionePagamentiMaggioriOneri is not mapped [FROM ElaborazionePagamentiMaggioriOneri e  WHERE e.dataInizioLancio IS NULL AND e.dataFineLancio IS NULL AND e.distinta IS NULL]
Run Code Online (Sandbox Code Playgroud)

我的实体如下:

@Entity(name="ELABORAZIONE_PAGAMENTI")
@Table(name="ELABORAZIONE_PAGAMENTI")
@NamedQuery(name="ElaborazionePagamentiMaggioriOneri.estrai", 
query="FROM ElaborazionePagamentiMaggioriOneri e  WHERE e.dataInizioLancio IS NULL AND e.dataFineLancio IS NULL AND e.distinta IS NULL")
public class ElaborazionePagamentiMaggioriOneri {
    @Id
    @GeneratedValue
    @Column(name="ID_ELABORAZIONE")
    private long idElaborazione;

    @ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="ID_INTERVALLO")
    private Intervallo intervallo;

    @Column(name="IMPORTO_MINIMO")
    private BigDecimal importoMinimo;

    @Column(name="IMPORTO_MASSIMO")
    private BigDecimal importoMassimo;

    @Column(name="LIMITE_DISPOSIZIONI")
    private Long limiteDisposizioni;

    @Column(name="DATA_INIZIO_LANCIO")
    private Calendar dataInizioLancio;

    @Column(name="DATA_FINE_LANCIO")
    private …
Run Code Online (Sandbox Code Playgroud)

java hibernate jpa named-query

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