小编Jas*_*son的帖子

Servlet中的线程和并发

我有一个Web应用程序从数据库中检索(大)结果列表,然后需要通过查看每个结果削减列表,并抛出"无效"的结果.使结果"无效"的参数是动态的,我们无法将工作传递给数据库.

因此,一个想法是创建一个线程池和ExecutorService并同时检查这些结果.但我一直看到人们说"哦,规范禁止在servlet中产生线程"或"这只是一个坏主意".

所以,我的问题是:我该怎么办?我在一个servlet 2.5容器中,所以作为3.0规范的一部分的所有异步的好东西都无法使用.编写一个我通过JMS与之通信的单独服务似乎有点矫枉过正.

在这里寻找专家意见.

贾森

java concurrency multithreading servlets

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

在$ .ajax成功方法中拒绝jQuery承诺

这可能是一个愚蠢的错误,但在这里.

我需要在$ .ajax()调用的成功函数中拒绝jQuery Promise.返回值"success"是一个布尔值.

    function doSomething() {

        var myPromise = $.ajax({

            method: "POST",
                url: "/url/to/use",
                data: {"value":$("#value").val()},
                success: function(data) {
                    if (data.success == false) {
                        ConfirmMessage.showErrorMessage(data.messages[0]);
                        return new $.Deferred().reject().promise();
                    } else {
                        // do other stuff
                    }
                }
            });

            return myPromise;

        }
Run Code Online (Sandbox Code Playgroud)

稍后在then()链中使用doSomething():

doSomething().then(doSomethingElse).then(soOn).then(soForth);
Run Code Online (Sandbox Code Playgroud)

所以我需要能够拒绝承诺并打破链条.

帮助赞赏.

javascript ajax jquery

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

在现代 Firefox/Chrome/Edge 浏览器中对 PDF 进行数字签名

我已经在几个兔子洞里寻找答案。

我有一个用 AngularJS 编写的 Web 应用程序,它目前需要 IE11 和 Acrobat 插件才能对 PDF 表单进行数字签名。但是,该插件在 IE11 上是垃圾,不支持现代浏览器(我定义为 Firefox、Chrome 和 Edge。我的公司不支持 Safari。)

因为该应用程序是 AngularJS(而不是在 Node 上运行),所以我需要一个 javascript 解决方案来签署 PDF。不仅如此,签名证书还保存在智能卡上,这意味着我需要一个可以通过某种 PKCS#11 接口访问证书的加密库。在 JavaScript 中。客户目前不接受在 Acrobat 中从外部打开表单。

我查看了多个图书馆,但无法找出一个直接的答案:

  • PKI.js
  • pkcs11.js
  • hwcrypto.js
  • 石墨烯.js

这些软件包都没有提供足够的信息让我知道是否进一步研究它们。

任何人都可以向我提供进一步的信息或方向吗?

谢谢,杰森

javascript pkcs#11

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

HibernateTemplate findByExample不返回任何结果

我正在尝试使用Hibernate QBE(实际上是Spring的HibernateTemplate.findByExample())来返回用户名列表.我使用"已知良好"值进行搜索(用户名"JOHN.SMITH"确实存在于数据库中).

不幸的是,我没有得到任何结果.以下是单元测试.

@Test
public void testQueryByExample() {

    User qbeUser = new User();
    qbeUser.setUsername("JOHN.SMITH");

    List<User> userList = userDao.queryByExample(qbeUser);
    Assert.notNull(userList);
    Assert.isTrue(userList.size() > 0, "List of returned users must not be 0");

}
Run Code Online (Sandbox Code Playgroud)

queryByExample()方法在通用DAO中定义:

@SuppressWarnings("unchecked")
public List<T> queryByExample(T obj) {
    return getHibernateTemplate().findByExample(obj);
}
Run Code Online (Sandbox Code Playgroud)

QBE是否需要任何特殊配置才能工作?

java orm spring hibernate query-by-example

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

带注释的Struts2 JSON插件

我有一个通过注释配置的Struts2 Action类.所有使用@Action注释的"普通"方法都可以正常工作.

但是,我需要在返回JSON的操作中添加一个方法.

这是我班级的精简版(用Spring自动装配):

@Namespace("featureClass")
// define success and input actions for class here
public class FeatureClassAction extends ActionSupport {

    FeatureClassDao featureClassDao;

    @Autowired
    public setFeatureClassDao(FeatureClassDeao featureClassDao) {
        this.featureClassDao = featureClassDao;
    }

    List<FeatureClass> featureClasses;

    // snip normal actions

    @Action("/featureClassesJSON")
    @JSON
    public String getFeatureClassesJSON() throws Exception {

        featureClasses = featureClassDao.getAll();
        return SUCCESS;
    }
}
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?如果我必须使用struts.xml路由,这意味着将所有其他操作(可以正常工作)移入其中.

json struts2

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

正则表达式匹配管道描述的文件

我需要一个正则表达式的帮助来检查一行是否匹配一行管道描绘的数据.数据将以管道结束,并且不会引用.有些字段是空的.

这是我正在尝试使用的内容:

Pattern dataPattern = Pattern.compile("(.+)\\|^");
Run Code Online (Sandbox Code Playgroud)

以下是一个示例数据行:

GJ 3486|||121.10766667|-83.23302778|295.84892861999998|-24.832649669999999||-0.48399999999999999||.371|2MASS J08042586-8313589|8.9700000000000006|8.3539999999999992|8.1110000000000007||2MASS||
Run Code Online (Sandbox Code Playgroud)

因为我只想看看这条线是否与图案相匹配,我认为我想出的那条线会找"哇哇哇哇哇哇哇哇哇".显然不是......任何人都可以帮助我吗?

贾森

java regex

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

Java 8 Stream减少任意类类型

好吧,这不是一个功课问题,这是"我得到了Java 8程序并希望最终通过认证考试"的问题.

我试图找出reduce()方法,在减少我的代码的单个成员的任意类的List(不是我看到的大多数示例代码使用的String或Integer)方面.

package playground;

import java.util.Arrays;
import java.util.List;

public class TestClass {

public static class MyClass {

    private int accumulator = 0;

    public MyClass() {

    }

    public MyClass(int initValue) {
        this.accumulator = initValue;
    }

    public int getAccumulator() {
        return accumulator;
    }

    public void setAccumulator(int accumulator) {
        this.accumulator = accumulator;
    }


}

public static void main(String... args) {

    MyClass mc1 = new MyClass(6);
    MyClass mc2 = new MyClass(8);
    MyClass mc3 = new MyClass(3);

    List<MyClass> myList = Arrays.asList(mc1, mc2, mc3);
    MyClass …
Run Code Online (Sandbox Code Playgroud)

java java-8

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

ASP.NET实体框架NotSupportedException

我在我的应用程序的数据层中使用LINQ to Entities,但是在调用results.ToList()时遇到了NotSupportedException.这是导致异常的函数:

    public List<Organization> GetByLocation(Location l)
    {
        using (Entities entities = new Entities())
        {
            var results = from o in entities.OrganizationSet
                          where o.Location == l
                          select o;

            return results.ToList<Organization>();
        }
    }
Run Code Online (Sandbox Code Playgroud)

关键是将给定位置的所有组织的列表返回到服务层(将其返回给MVC控制器,MVC控制器将其转换为JSON,然后将其返回给客户端).服务层期望返回List.

这可能很简单......任何帮助?

c# asp.net linq-to-entities

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

无需外键即可休眠ManyToOne

我正在寻找有关映射大型旧架构的一些建议。

这是情况。假设我们有一个名为BusinessTransaction的类。此类具有引用用户ID的多个字段:

@Entity
public class BusinessTransaction implements Serializable {

    private Long id;
    private User createdBy;
    private User editedBy;
    private User cancelledBy;

    private String department;
    // etc 

}

public class User implements Serializable {
    private Long id;
    private String department;
    //etc
}
Run Code Online (Sandbox Code Playgroud)

但是,BusinessTransaction表和User表之间没有外键。在SQL中,用户将通过部门密钥上的左外部联接连接到BusinessTransaction。

这些外键的创建将需要创建联接表。我们的DBA不愿创建外键或联接表,并且这样做的原因可以理解(影响批处理脚本,对应用程序可能产生的副作用等)。

我唯一的另一个想法是使用JoinFormula。但是,@ JoinFormula没有最好的文档,我的理解是数据将是只读的。

我是否忽略了任何有用的东西?

编辑:添加部门。

杰森

hibernate

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

将普通语言持续时间转换为Joda Period或ISO 8601

我有一个看起来像这样的字符串:"n n n n n n n n n ns ns周期"(请注意,常数可能会也可能不会复数)

我需要将其转换为Joda Period对象或ISO 8601格式的String(可以转换为Period对象).

有没有人有任何代码,或者他们可以指向我这样做的库吗?

更新:如果有人需要这样做,这是工作代码.不幸的是,我必须动态构建PeriodFormatterBuilder,因为字段是可选的.有点难看,但它的确有效.

Update2:修复了注释中指出的错误.

String text = expr1a.getText();
System.out.println(text);

PeriodFormatterBuilder pfb = new PeriodFormatterBuilder().printZeroAlways();

int yearIndex = text.indexOf("YEAR");
int monthIndex = text.indexOf("MONTH");
int weekIndex = text.indexOf("WEEK");
int dayIndex = text.indexOf("DAY");

if (yearIndex > -1) {
  pfb = pfb.appendYears().appendSuffix(" YEAR"," YEARS");
}

if (monthIndex > -1) {
  if (yearIndex > -1) {
    pfb = pfb.appendPrefix(" ").appendMonths().appendSuffix(" MONTH", " MONTHS");
  } else {
    pfb = pfb.appendMonths().appendSuffix(" MONTH", …
Run Code Online (Sandbox Code Playgroud)

java jodatime

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