Hibernate 3.x使用slf4j进行日志记录.Hibernate 4.x使用jboss-logging.我正在编写一个独立的应用程序,它使用Hibernate 4和SLF4J进行日志记录.
如何配置Hibernate以登录SLF4J?
如果那不可能,我怎么能配置Hibernate的日志记录呢?
关于日志记录的Hibernate 4.1手册部分首先警告它是......
完全过时了.Hibernate从4.0开始使用JBoss Logging.当我们将此内容迁移到开发人员指南时,这将记录在案.
......继续谈论SLF4J,所以没用.入门指南和开发人员指南都没有谈论记录.迁移指南也没有.
我已经查找了有关jboss-logging本身的文档,但我根本找不到任何文档.在GitHub的页面是沉默的,和JBoss的社区项目页面甚至没有列出的jboss-记录.我想知道项目的bug跟踪器是否可能有任何与提供文档相关的问题,但事实并非如此.
好消息是,在应用程序服务器(如JBoss AS7)中使用Hibernate 4时,很大程度上会记录日志记录.但是我如何在独立应用程序中配置它?
我正在尝试评估像Jackrabbit和ModeShape这样的内容存储库(JSR283),但我必须承认,我不知道什么问题首先解决,即使它是项目的一个好选择.您认为哪种情况适用最佳解决方案?除了大小之外,与关系数据库不是一回事吗?为什么?指向现实世界的例子的额外点.
提前致谢.
在一次采访中,我得到了以下代码:
public abstract class Base {
public int x = 1;
public Base() {
foo();
}
public abstract void foo();
}
public class Derived extends Base {
int x = 2;
@Override
public void foo() {
System.out.println("Derived: "+x);
}
}
class Main {
public static void main(String... args) {
Base base = new Derived();
base.foo();
}
}
Run Code Online (Sandbox Code Playgroud)
他们问过:
什么会打印?
如果我们使用C++,我认为代码应该给出编译错误,因为Derived首先调用构造函数时,Base会调用类的构造函数.此时该foo方法不存在.
另外我知道在创建所有变量之前,首先调用继承的类构造函数.
但是在Java中我们得到:
Derived: 0 Derived: 2
为什么?
我知道像在C++中一样,Java继承始终基于虚拟表,并且在Base类的构造函数之前调用类的构造函数Derived.
Context context = new InitialContext();
dataSource = (DataSource) context.lookup("java:comp/env/jdbc/multiDS");
connection = dataSource.getConnection();
Run Code Online (Sandbox Code Playgroud)
请帮我模仿上面的代码.
嗨汤姆安德森
我尝试了下面的代码
@BeforeClass
public static void setUpClass() throws Exception {
// rcarver - setup the jndi context and the datasource
try {
// Create initial context
System.setProperty(Context.INITIAL_CONTEXT_FACTORY,
"org.apache.naming.java.javaURLContextFactory");
System.setProperty(Context.URL_PKG_PREFIXES,
"org.apache.naming");
Context ic = new InitialContext();
ic.createSubcontext("java:");
ic.createSubcontext("java:comp");
ic.createSubcontext("java:comp/env");
ic.createSubcontext("java:comp/env/jdbc");
ic.createSubcontext("java:comp/env/jdbc/multiDS");
// Construct DataSource
OracleConnectionPoolDataSource ds = new OracleConnectionPoolDataSource();
ds.setURL("jdbc:oracle:thin:@g9u0696.houston.hp.com:1525:CRNAD");
ds.setUser("uname");
ds.setPassword("pwd");
} catch (NamingException ex) {
ex.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
但它给出的错误是:
com.hp.corona.common.exception.CacheException: org.apache.naming.NamingContext cannot be cast to javax.sql.DataSource …Run Code Online (Sandbox Code Playgroud) Runnable是一个相当有限的抽象; run无法返回值或抛出已检查的异常.
run() 不能返回一个值,因为它的返回类型是void,但为什么不能抛出一个已检查的异常?
是否有Typemock Isolator .NET的 F/OSS替代品?
我一直在使用git-subtree扩展(https://github.com/apenwarr/git-subtree)来管理我们主项目中的子项目.当我尝试从主项目中拆分对子项目所做的更改时,它正在完成我想要的事情.
比如早些时候我做过
git subtree add -P Some/Sub/Dir --squash git@gitserver:lib.git master
Run Code Online (Sandbox Code Playgroud)
将库代码引入我们主项目中的Some/Sub/Dir.这里的一切都很棒,所以我把我的更改推到了我们的中央主要项目裸git repo.然后我决定在Some/Sub/Dir中更改我的本地版本的lib,提交它,然后将其拆分以将其推回到lib.git repo
git subtree split -P Some/Sub/Dir -b some_branch
Run Code Online (Sandbox Code Playgroud)
一切都按预期工作.不再需要repo的本地副本我删除了它.
从我们的中央仓库克隆了一个新的repo副本后,我对Some/Sub/Dir中的lib进行了一些更改,并决定将这些更改拆分出来并将它们推回到lib.git存储库.我尝试使用与以前相同的子树分割命令,但这次我最终得到以下输出:
1/ 3 (0)
2/ 3 (1)
3/ 3 (1)
fatal: bad object d76a03f0ec7e20724bcfa253e6a03683211a7bb1
Run Code Online (Sandbox Code Playgroud)
d76a03f0ec7e20724bcfa253e6a03683211a7bb1来自我添加子树时:
commit 43b3eb7d69d5eb64241eddb12e5bd74fd0215083
Author: Ian Bond <ibond@onezero.com>
Date: Fri Apr 22 15:06:50 2011 -0400
Squashed 'Subtree/librepoLib/' content from commit d76a03f
git-subtree-dir: Subtree/librepoLib
git-subtree-split: d76a03f0ec7e20724bcfa253e6a03683211a7bb1
Run Code Online (Sandbox Code Playgroud)
实际上是指lib.git repo中的提交.
我能够拼凑起来(我是一个git noob所以我可能错了,忽略了一些东西,或者在这里使用了不正确的术语),'git subtree add --squash'将带来整个历史远程lib.git repo进入当前仓库,将其压缩到单独的提交中,然后将该提交添加到工作分支中.lib.git提交历史记录保留在当前的repo中,但是它们是悬空提交,因为除了通过压缩提交的文本之外它们实际上没有被引用.只要那些悬空提交仍然存在,git-subtree就可以使用它们来执行拆分,但是由于推或拉不包含悬空对象(或者如果我运行gc并完全修剪悬空对象),那些悬空提交将丢失并且git-subtree不再具有执行拆分所需的信息.
我添加了一个脚本,可以完全重现我一直存在的问题.
我的问题是:
1)我可以做些什么来处理我现在有子树的现有情况,我想要合并回原始仓库,但不再有任何将它们链接在一起的历史记录.我目前的想法是做一些像:
git subtree split -P Some/Sub/Dir …Run Code Online (Sandbox Code Playgroud) 我不使用Mercurial,但我想开始,所以我正在阅读它.我广泛使用的唯一SCM系统是CVS.我读过的关于Mercurial的大部分内容都很有意义,听起来也不错.但是,我对这种标签的方式感到震惊和困惑.
标签只是变更集的昵称(而'变更集'我们实际上是指变更集产生的状态).凉.从标签到变更集ID的映射存储在.hgtags文件中.也很酷.该.hgtags文件已版本化.
什么?
这有很多违反直觉的后果.例如,如果我提交一个我想要标记的变更集(例如,将形成版本1.0的代码),我必须在标记后再次提交,以将更新的标记文件放入存储库.如果我稍后更新到该标记的变更集,则工作副本将不包含该标记的任何知识.如果我做了一些工作,从而建立了一个新的分支(例如,对于错误修正,朝向1.1),该分支将不知道它所生长的标记.除非我手动复制它,即.
随着开发在原始主干和我的新分支上继续进行,创建标签以标记重要的变更集(主干上的2.0版本,分支上的1.1和1.2错误修复版本),两个分支将继续无知其他分支分支的标签.所以,如果我在一个分支上完成工作,并希望切换到另一个分支上的某个特定变更集(比如说,我完成1.2 bugfix发布,但现在必须从2.1 bugfix开始,基于2.0),我现在已经塞满了.我目前的变化集不知道2.0!
我能做什么?
hgtags在存储库外维护一个单独的全局文件,并使用一些钩子来获取更新的副本,覆盖本地副本,并复制提交中的任何更改.我不确定这在多用户环境中是如何工作的,开发人员正在将更改推送到共享存储库; 我可能只需要一个单独的存储库用于该hgtags文件.localtags在开发人员之间同步文件.这些解决方案似乎都不是很好.我该怎么办?
这里的假设是我在单个存储库中使用命名分支来管理分支,而不是每个分支存储库.如果我做后者,情况会好转吗?
'输出蒸汽'是指任何接收字节序列或字符或其他内容的对象.所以,java.io.OutputStream,还有java.io.Writer,javax.xml.stream.XMLStreamWriter的writeCharacters方法等等.
我正在为一个类编写基于模拟的测试,该类的主要功能是将数据流写入其中一个(XMLStreamWriter,就像它一样).
问题是数据流是在对write方法的一系列调用中编写的,但重要的不是调用,而是数据.例如,给定XMLStreamWriter out,这些:
out.writeCharacters("Hello, ");
out.writeCharacters("world!");
Run Code Online (Sandbox Code Playgroud)
相当于:
out.writeCharacters("Hello, world!");
Run Code Online (Sandbox Code Playgroud)
这对我的目的来说无关紧要.将会有一些特定的调用序列,但我不在乎它是什么,因此我不想写出对该特定序列的期望.我只是希望能够以任何方式写入某个特定的数据流.
一种选择是切换到基于状态的测试.我可以在缓冲区中累积数据,并对其进行断言.但是因为我正在编写XML,这意味着要做一些相当复杂和丑陋的断言.模拟似乎是处理编写XML的更大问题的更好方法.
那么我如何用模拟做到这一点?
我正在使用Moxie进行模拟,但我很想知道任何模拟库的方法.
每当我检查导航菜单中的任何元素,或者检查元素然后浏览到导航菜单时,我会在Google Chrome中收到"Aw,Snap"错误.我认为源必须有问题,但在编辑器中查看源代码后,似乎一切都是正确的格式.
可能导致此错误的原因是什么?
你可以点击这里查看网站:)
此代码中的某些内容导致错误:
<li>
<a id="nav-corporate" class="accordionButton <?php if (is_page(1635) || is_page(1909)) { echo "curr-page-nav";}?>">Corporate</a>
<div class="sub-list-container">
<ul>
<li>
<a href="<?php echo get_page_link(1635); ?>" id="nav-meeting" class="subitem"><span class="nav-hidden">Meetings</span></a>
</li>
<li>
<a href="<?php echo get_page_link(1909); ?>" id="nav-event" class="subitem"><span class="nav-hidden">Events</span></a>
</li>
</ul>
</div>
</li>
Run Code Online (Sandbox Code Playgroud)
顺便说一下,我试过三台电脑.