我似乎无法让Maven将ojdbc6.jar文件捆绑到我的项目的war文件中.在直接为Hibernate工具指定依赖项时,我在POM文件中工作.但它不会与项目的war文件捆绑在一起,因此我的项目不会在Tomcat上运行.
我已经尝试了我可以在网上找到的每个解决方案,包括这里为此问题指定的解决方案:
最近,我做了以下事情:
将jar文件下载到我的机器上
运行以下命令将jar安装到我的本地存储库中:
mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.3 -Dpackaging=jar -Dfile=ojdbc6.jar -DgeneratePom=true
Run Code Online (Sandbox Code Playgroud)
(我也尝试过该命令的各种变体.)
最后,我将依赖项放入我的pom文件中:
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.3</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)我运行一个干净的构建,但它失败了:
mvn -U clean package
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building jazztwo 0.0.1
[INFO] ------------------------------------------------------------------------
Downloading: http://repo1.maven.org/maven2/com/oracle/ojdbc6/11.2.0.3/ojdbc6-11.2.0.3.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.700s
[INFO] Finished at: Tue Mar 27 15:06:14 PDT 2012
[INFO] Final Memory: 3M/81M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project jazztwo: Could not resolve dependencies …
Run Code Online (Sandbox Code Playgroud)我在Tomcat上使用Hibernate和Spring.我一直在阅读并重新阅读关于该主题的指向JBoss wiki页面的内容,这很有帮助.但它给我留下了一些问题.
为每个请求启动交易的想法让我很烦恼.我想我可以将过滤器限制在某些控制器 - 可能将我需要交易的所有控制器放在伪"tx"路径下.但如果您不知道是否需要交易,那么使用交易不是一个坏主意吗?如果我只是在某些请求中读取 - 很可能来自缓存的读取 - 在没有事务的情况下我不是更好吗?
我读过帖子,提到他们如何处理服务层的事务,我想用Spring做这件事.但那么过滤器代码是什么样的呢?我仍然希望在我的视图中可以使用会话进行一些延迟加载.
如果我所要做的就是调用sessionFactory.getCurrentSession()
我的过滤器,它如何被"释放"回会话工厂重新使用?(session.close()
即使在使用事务时,我也希望看到一个或者什么.)谁在告诉会话工厂该会话可以重用?
也许beginTransaction()
是在请求期间将给定数据库连接绑定到给定会话的调用?否则,会话根据需要从池中提取数据库连接,对吧?
感谢您对我的所有问题的耐心等待.
(如果你的答案将成为Spring文档的链接,那么你只会让我哭泣.你不想要那个,是吗?如果人们不再回答Spring相关的问题,我会付真钱吗办法.)
我在Eclipse中做的最常见的构建活动(除了允许自动构建做它的事情之外)是使用clean和package参数执行"Maven Build ...".这会运行我的所有测试.m2eclipse做得很好,我喜欢输出.如果测试中断,我会跳转到使用JUnit插件,调试器等.
我在Run(和Debug)按钮的下拉菜单下使用了"Organize favorites ..."来使这种构建"永久"并且在某种程度上易于访问和使用.
但不够容易.
我现在拥有的是一个按钮,根据我上次的活动,我打开的文件或项目窗口中选择的项目,随时变形.是的,我可以单击运行按钮旁边的向下箭头,选择"clean-and-package"的最爱,但是对于我每天做数百次的事情来说,这太难了.
我想要一个按钮.工具栏上的一个大按钮,我只需点击它,就可以使用炸药.我也会接受一种为我的构建最爱分配热键的方法,所以我可以按ctrl + r或其他东西来运行我最喜欢的项目.
什么对我有用?
我正在做一个使用jquery将数据从表单传递到脚本并返回的登录表单.我注意到电子邮件和密码是以简单可读的文本形式发送的.我也注意到在其他网站中,例如这个,gmail或其他网站,登录信息不像我的那样可读.我怎样才能做到这一点?不知何故,以纯文本形式发送此信息看起来不太专业.
考虑以下两个EXPLAIN:
EXPLAIN SELECT * FROM sales WHERE title != 'The'
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE sales ALL title NULL NULL NULL 41707 Using where
Run Code Online (Sandbox Code Playgroud)
而且 -
EXPLAIN SELECT * FROM sales WHERE title = 'The'
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE sales ref title title 767 const 1 Using where
Run Code Online (Sandbox Code Playgroud)
为什么!=
查询有NULL
密钥?它为什么不用title
?是什么导致=
语句能够利用索引而不是!=
?
为什么B级不能公开?我如何在其他课程中使用课程?在Cons内部定义它更好吗?!
// public class B { why not?
class B {
int x;
B (int n) {
x=n;
System.out.println("constructor 'B (int n)' called!");
}
}
public class Cons {
public static void main(String[] args) {B b = new B();}
}
Run Code Online (Sandbox Code Playgroud) 由于c已经是同步集合,因此它是线程安全的.但为什么我们必须synchronized(c)
再次使用迭代?真的很困惑.谢谢.
"当迭代它时,用户必须手动同步返回的集合:
Collection c = Collections.synchronizedCollection(myCollection);
...
synchronized(c) {
Iterator i = c.iterator(); // Must be in the synchronized block
while (i.hasNext()) {
foo(i.next());
}
}
Run Code Online (Sandbox Code Playgroud)
不遵循此建议可能会导致非确定性行为." http://docs.oracle.com/javase/6/docs/api/java/util/Collections.
作为单元测试的一部分,我需要使用任何参数模拟void函数(接受任何非原始参数,例如MAP)调用.
mockObj.myMethod(<anyObject>)
Run Code Online (Sandbox Code Playgroud)
是否可以使用EasyMock执行此操作?
今天遇到了一些使用Hibernate执行查询的代码.该查询使用从表单提交的值.这让我很好奇这种代码是否"消毒"了它的输入.
public List<School> search(String query) {
Session session = this.getCurrentSession();
query = "%" + query + "%";
Criteria criteria = session.createCriteria(getPersistentClass());
criteria.createAlias("country", "a");
Criterion nameCriterion = Restrictions.ilike("name", query);
Criterion cityCriterion = Restrictions.ilike("city", query);
Criterion countryCriterion = Restrictions.ilike("a.name", query);
Criterion criterion = Restrictions.or(Restrictions.or(nameCriterion, cityCriterion), countryCriterion);
criteria.add(criterion);
return criteria.list();
}
Run Code Online (Sandbox Code Playgroud)
这样安全吗?
我有一个显示各种按钮的菜单,我可以让按钮在点击时调用各自的JPanels.事情是我想让Jpanel在调用时滑入而不是瞬间弹出.我尝试使用补间引擎和Java初学者,我发现它真的很难,所以我决定使用定时动画.我能够让Jpanel在顶部滑到一边,但由于某种原因,下一个面板不想显示,我真的很累,有人可以帮忙!代码如下:
public class Listener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
new Timer(0, new ActionListener() {
public void actionPerformed(ActionEvent e) {
mainpane.setLocation(mainpane.getX() - 10, 0);
if (mainpane.getX() + mainpane.getWidth() == 0)
{
((Timer) e.getSource()).stop();
System.out.println("Timer stopped");
}
}
}).start();
}
}
Run Code Online (Sandbox Code Playgroud)