小编Mik*_*eck的帖子

在Java中比较2个XML文档的最佳方法

我正在尝试编写一个应用程序的自动测试,它基本上将自定义消息格式转换为XML消息并将其发送到另一端.我有一组很好的输入/输出消息对,所以我需要做的就是发送输入消息并监听XML消息从另一端出来.

当需要将实际输出与预期输出进行比较时,我遇到了一些问题.我的第一个想法就是对预期和实际消息进行字符串比较.这样做效果不好,因为我们拥有的示例数据并不总是一致地格式化,并且通常会有不同的别名用于XML命名空间(有时根本不使用命名空间.)

我知道我可以解析两个字符串,然后遍历每个元素并自己进行比较,这不会太困难,但我觉得有一个更好的方法或我可以利用的库.

所以,归结起来,问题是:

给定两个包含有效XML的Java字符串,您将如何确定它们在语义上是否等效?如果您有办法确定差异是什么,可以获得奖励积分.

java xml testing comparison parsing

194
推荐指数
7
解决办法
18万
查看次数

在Java中创建对象的所有不同方法是什么?

前几天与同事谈过此事.

显而易见的是使用构造函数,但还有其他方法吗?

java

176
推荐指数
11
解决办法
41万
查看次数

Ruby On Rails是否已为企业做好准备?

是否有人使用RoR进行大规模,关键业务的企业应用程序?

是否有其他基于动态语言的轻量级Web框架,人们正在使用这些类型的应用程序?

如果您没有使用这些类型的应用程序框架,那么什么阻止了您?它只是与任何大型IT组织相关的惯性.这些框架的速度和稳定性问题是否足以抵消开发周期时间的改进?

ruby enterprise ruby-on-rails

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

为什么pg_restore成功返回但实际上没有恢复我的数据库?

我在Linux服务器上有一个Postgres 8.4数据库,我使用以下命令转储:

pg_dump --format=c --exclude-table=log --file=/path/to/output my_db
Run Code Online (Sandbox Code Playgroud)

然后我将创建的文件ftp到我的本地Windows 7计算机,并尝试使用以下命令将文件恢复到我的本地Postgres 8.4实例:

pg_restore --create --exit-on-error --verbose c:\path\to\file
Run Code Online (Sandbox Code Playgroud)

restore命令生成大量输出,声称它创建了我的数据库,连接到它,然后按预期创建了所有其他表.但是,当我通过pgAdmin查看本地计算机上的数据库时,恢复的数据库根本不存在.

在尝试进行故障排除时,我尝试了以下命令:

pg_restore --create --exit-on-error --verbose --host=blahblah --username=no_one c:\path\to\file
Run Code Online (Sandbox Code Playgroud)

当我运行此命令时,即使给出的主机和用户名是完全无意义的,我仍然可以从命令获得完全相同的输出而没有任何错误.

有没有人遇到这个或知道什么可以导致这个?

postgresql pg-dump pg-restore

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

Java中的BarCode图像生成器

如何在Java中创建条形码图像?我需要能够输入数字并生成相应条形码图像的东西.是否有可用于此类任务的免费库?

java generator barcode

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

ArrayBlockingQueue和LinkedBlockingQueue有什么区别

  1. 使用ArrayBlockingQueue的情况更好,何时使用LinkedBlockingQueue更好?
  2. 如果LinkedBlockingQueue默认容量等于MAX Integer,将它用作具有默认容量的BlockingQueue真的有用吗?

java blockingqueue blockingcollection

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

用于解析目录和文件名的正则表达式

我正在尝试编写一个正则表达式,它将使用匹配组解析完全限定路径的目录和文件名.

所以...

/var/log/xyz/10032008.log
Run Code Online (Sandbox Code Playgroud)

将承认group 1 to be "/var/log/xyz"group 2 to be "10032008.log"

看似简单,但我不能让匹配的团队为我的生活工作.

注意:正如一些受访者所指出的,这可能不是正常表达的好用.通常我更喜欢使用我正在使用的语言的文件API.我实际上要做的事情比这复杂得多,但要解释起来要困难得多,所以我选择了一个每个人都熟悉的域名,以便最简洁地描述根本问题.

regex parsing

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

使用Hibernate基于唯一键查找或插入

我正在尝试编写一个方法,它将返回一个基于唯一但非主键的Hibernate对象.如果实体已存在于数据库中,我想返回它,但如果不存在,我想创建一个新实例并在返回之前保存它.

更新:让我澄清一下,我正在编写的应用程序基本上是输入文件的批处理器.系统需要逐行读取文件并将记录插入数据库.文件格式基本上是我们模式中几个表的非规范化视图,所以我要做的是解析父记录,或者将其插入到db中,这样我就可以得到一个新的合成密钥,或者如果它已经存在则选择它.然后我可以在其他表中添加其他关联记录,这些表具有返回该记录的外键.

这很棘手的原因是每个文件需要完全导入或根本不导入,即为给定文件完成的所有插入和更新应该是一个事务的一部分.如果只有一个进程正在执行所有导入,这很容易,但是如果可能的话,我想在多个服务器上解决这个问题.由于这些约束,我需要能够保留在一个事务中,但是处理已经存在记录的异常.

父记录的映射类如下所示:

@Entity
public class Foo {
    @Id
    @GeneratedValue(strategy = IDENTITY)
    private int id;
    @Column(unique = true)
    private String name;
    ...
}
Run Code Online (Sandbox Code Playgroud)

我最初尝试编写此方法的方法如下:

public Foo findOrCreate(String name) {
    Foo foo = new Foo();
    foo.setName(name);
    try {
        session.save(foo)
    } catch(ConstraintViolationException e) {
        foo = session.createCriteria(Foo.class).add(eq("name", name)).uniqueResult();
    }
    return foo;
}
Run Code Online (Sandbox Code Playgroud)

问题是当我正在寻找的名称存在时,调用uniqueResult()会抛出org.hibernate.AssertionFailure异常.完整的堆栈跟踪如下:

org.hibernate.AssertionFailure: null id in com.searchdex.linktracer.domain.LinkingPage entry (don't flush the Session after an exception occurs)
    at org.hibernate.event.def.DefaultFlushEntityEventListener.checkId(DefaultFlushEntityEventListener.java:82) [hibernate-core-3.6.0.Final.jar:3.6.0.Final]
    at org.hibernate.event.def.DefaultFlushEntityEventListener.getValues(DefaultFlushEntityEventListener.java:190) [hibernate-core-3.6.0.Final.jar:3.6.0.Final]
    at org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:147) [hibernate-core-3.6.0.Final.jar:3.6.0.Final]
    at org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:219) [hibernate-core-3.6.0.Final.jar:3.6.0.Final]
    at …
Run Code Online (Sandbox Code Playgroud)

java hibernate upsert unique-key unique-constraint

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

Tomcat类加载器的顺序:通用,共享和服务器

Tomcat 类加载器HOW-TO文档描述了4种不同的类加载器:

  1. 引导
  2. 系统
  3. Web应用程序
  4. 共同

但是,在默认的catalina.properties文件中,还为共享和服务器类加载器定义了属性.在文件的默认版本中,这两个属性都是空的,注释说:

如果保留为空白,则"common"加载程序将用作Catalina的"共享"/"服务器"加载程序.

我无法找到有关这些类加载器的任何其他文档.我的问题是,共享和系统加载器相对于公共加载器的搜索顺序是什么?此外,这些类加载器的用途是什么?

configuration tomcat classloader

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

用于Java的轻量级SOAP客户端库

任何人都可以推荐一个好的Java开源库来构建一个简单的SOAP Web服务客户端吗?我正在寻找可在Java 5 SE环境中运行的具有最小依赖性和配置的东西.升级到Java 6并不是这个项目的一个选项,如果我可以避免使用它,我宁愿避免使用完整的J2EE容器.我不需要发布和服务,只需要消费.

我目前正在使用Axis2,但我必须提供大约15MB的额外罐子才能在没有NoClassDefFoundError的情况下对Web服务进行简单的调用,而且我正在寻找一些不那么臃肿的东西.

我也看过CXF,但我不愿意使用它,因为它与Spring紧密耦合.Spring不是100%的交易破坏者,但如果可能的话,我宁愿避免它.

有什么建议?

java soap

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