小编Pau*_*aul的帖子

春天的cron vs普通的cron?

我正在尝试在遗留的Java/Spring/Hibernate项目中使用cron作业,所以我决定使用spring调度程序.

我希望myTask.doStuff在每个月的第一个星期日的12:00运行.

在我的application-context.xml中,我已经将我的任务调度程序配置为:

<task:scheduled-tasks scheduler="MyTaskScheduler">
    <task:scheduled ref="myTask" method="doStuff" cron="0 0 12 ? 1/1 SUN#1 *"/> <!-- Every first Sundy of the month -->
</task:scheduled-tasks>

<task:scheduler id="MyTaskScheduler" pool-size="10"/>
Run Code Online (Sandbox Code Playgroud)

问题cron表达本身是:0 0 12?1/1 SUN#1*

并且myTask是一个bean,它有一个调用的方法doStuff,从单元测试运行时可以正常工作.

当我构建和部署时,我从spring获得了一个bootime异常:

Caused by: java.lang.IllegalArgumentException: cron expression must consist of 6 fields (found 7 in 0 0 12 ? 1/1 SUN#1 *)
at org.springframework.scheduling.support.CronSequenceGenerator.parse(CronSequenceGenerator.java:233)
at org.springframework.scheduling.support.CronSequenceGenerator.<init>(CronSequenceGenerator.java:81)
at org.springframework.scheduling.support.CronTrigger.<init>(CronTrigger.java:54)
at org.springframework.scheduling.support.CronTrigger.<init>(CronTrigger.java:44)
at org.springframework.scheduling.config.ScheduledTaskRegistrar.afterPropertiesSet(ScheduledTaskRegistrar.java:129)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)
Run Code Online (Sandbox Code Playgroud)

鉴于我第一次使用cron表达式,我的第一个假设是我做错了,但我使用cronmaker进行了双重检查,它给了我相同的结果.

所有文档都说:cron表达式是由六个或七个子表达式(字段)组成的字符串.1

尽管如此,我试图敲掉第7个元素(年份)因为它不在任何示例中,并且得到了不同的错误消息:

org.springframework.beans.factory.BeanCreationException: Error …
Run Code Online (Sandbox Code Playgroud)

java cron spring

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

Oracle DB&SQL Developer:"错误报告:执行完成并发出警告" - 我如何看*警告?

我正在建立一个本地oracle(11g)数据库 - 我们已经运行的另一个数据库的克隆.我在SQL Developer中运行了一堆生成的PL/SQL命令.

我得到了输出

Error starting at line x in command: 
*long-ass SQL statement here* 
Error report: 
SQL Command: force view "someViewName"
Failed: Warning: execution completed with warning
Run Code Online (Sandbox Code Playgroud)

如何在不修改脚本的情况下读取生成的警告?

当我show errors在此命令后立即使用时,我得到输出 no errors

sql oracle oracle-sqldeveloper

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

在Spring和Hibernate中使用TransactionProxyFactoryBean

我有一个旧项目,我正在尝试升级到spring 4/hibernate 4.

我们使用这种方法来配置我们的交易.

也就是说,在XML中我们定义了一个事务管理器,如:

<bean id="abstractTransactionProxy"
abstract="true"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager" ref="hibernateTransactionManager"/>
<property name="transactionAttributes">
    <props>
        <prop key="create*">PROPAGATION_REQUIRED</prop>
        <prop key="update*">PROPAGATION_REQUIRED</prop>
        <prop key="delete*">PROPAGATION_REQUIRED</prop>
        <prop key="*">PROPAGATION_SUPPORTS,readOnly</prop>
    </props>
</property>
Run Code Online (Sandbox Code Playgroud)

<bean id="MySessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    <property name="dataSource"     ref="myDataSource" />
    <property name="configLocation" value="WEB-INF/hibernate.cfg.xml" />
</bean>
Run Code Online (Sandbox Code Playgroud)

然后我们的每个服务bean定义如下:

<bean id="customerService" parent="abstractTransactionProxy">
    <property name="target" ref="customerTarget"/>
    <property name="personDAO" ref="personDAO" />
</bean>
Run Code Online (Sandbox Code Playgroud)

和DAO定义如下:

    <alias name="personDaoImpl" alias="personDAO"/>
<bean id="personDaoImpl" 
    class="com.foo.bar.hibernate.PersonDaoImpl">
    <property name="sessionFactory" ref="MySessionFactory" />
</bean>
Run Code Online (Sandbox Code Playgroud)

PersonDaoImpl(以及所有其他DAO)有许多看起来像这样的方法(所有DAO都扩展了HibernateDaoSupport):

    public List<Person> getPersonByCriteria(final String criteria) {
    List<Person> results = 
        (List<Person>) this.getHibernateTemplate().executeFind(new HibernateCallback<List<Person>>(){

        public List<Person> doInHibernate(Session …
Run Code Online (Sandbox Code Playgroud)

java orm configuration spring hibernate

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

将大型应用程序从spring 3.0.x升级到4.1.x - 我应该遵循哪些最佳实践/程序?

我已经使用Spring大约一年了,而且我已经足够舒服地使用它了,但我在大多数情况下都避免跳过引擎盖.

我的任务是升级从Spring 3.0.x到Spring 4.1.x的大型关键任务企业应用程序.

制作像这样的大型,不可避免的挑剔和复杂变化的最佳实践是什么?(任何超出'扔进jar文件,看看会发生什么''阅读文档:http://spring.io/ '会非常有帮助)

系统:

  • Java 6 - jax-b/-p/-ws /,Apache Commons,

  • Spring 3.0.5 - 通常(核心,上下文,bean等),MVC,AOP,ORM,JDBC,Acegi

  • Hibernate 3.5

  • 雄猫6

  • 0单元测试或任何类型的自动测试.

  • Maven依赖管理和构建自动化.

  • 半控制器使用注释进行请求响应映射,一半使用simpleFormController模式,一半使用自动装配,一半使用xml连接.

  • 数百个观点,数十个控制器.

到目前为止我采取的步骤:

  • 准备一个(主要是自动化的)回归测试脚本(以便我可以确保我没有破坏任何东西)

  • 我开始一次阅读"升级指南","升级到3.1","升级到3.2"并对听起来很熟悉的事情做笔记,但我想我需要更深入地了解在我对此作为一种详尽的方法充满信心之前,我们的系统,以及一般的春天.这通常感觉像是一种随意的方法,这不是我想要的这种复杂的变化.

我的问题:

  • 对于像这样的工作,哪些步骤/程序被认为是"最佳实践"?

  • 对你这样的工作来说,有什么东西可以作为'陷阱'吗?

java spring spring-mvc

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

在服务器上设置Tomcat 7:"NB:JAVA_HOME应该指向JDK而不是JRE"......为什么?

我正在尝试在我的服务器实例上设置Tomcat 6(全新安装Windows Server 2008 R2 Enterprise).我想通过URL提供Java EE服务.

它通过localhost服务器工作.我把.war文件放在我的/webapps,运行startup.bat /bin然后我导航到localhost:80/myWebServce我的浏览器,转到我的欢迎页面.

当我尝试通过运行service.bat(在/bin文件夹中)创建服务时,我收到一条错误消息:

The JAVA_HOME environment variable is not defined correctly
This environment variable is needed to run this program
NB: JAVA_HOME should point to a JDK not a JRE
Run Code Online (Sandbox Code Playgroud)

我的问题是:为什么?我认为JDK只是一个JRE +一些开发工具(一个IDE,一个调试器等).为什么tomcat需要JDK作为服务运行,而不是在localhost上运行?JDK中运行Web服务需要什么?

java configuration tomcat

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

Javascript:在(50000*50000网格)2d阵列中寻路?

问题

所以,假设有人想象一个2-d整数值数组,它代表一个gridded-map,如下所示: +-----+------+-----+-----+-----+ | 10 | 2 | 2 | 4 | 656 | +-----+------+-----+-----+-----+ | 234 | 165 | 724 | 759 | 230 | +-----+------+-----+-----+-----+ | 843 | 734 | 999 | 143 | 213 | +-----+------+-----+-----+-----+ | 242 | 2135 | 131 | 24 | 374 | +-----+------+-----+-----+-----+ | 159 | 464 | 155 | 124 | 151 | +-----+------+-----+-----+-----+

2d索引表示地图上单元格的坐标,数组中的值表示遍历该单元格地形的相对难度 - 例如999可能是粗荆棘,而2,3,4可能是稍微倾斜的路径......或者其他东西.

现在我们想找到从网格上的[x,y]到网格上的[q,r]的最简单路径(其中步长的总和是最低的,换句话说)

问题域

这需要在现代浏览器中运行,其中渲染相当简洁的地图,并且在用户输入[q之后,我们将通过所有中间顶点绘制从[x,y]到[q,r]的线. R].方便的是,[X,Y]总是相同的(简单来说[0,0])

所以使用Dijkstra的算法或A*!

所以我的第一直觉是将数组建模为图形,应用Dijkstra的算法并从那里开始工作.在上面的例子中,使用5x5网格,工作正常.我遍历每个数组索引,并使用值和相邻值生成一个节点,该节点的所有邻居都有加权边.这构建了一个图表,然后我可以应用Dijkstra的算法.

但是,实际上,我将使用最大50,000 x 50,000的阵列!那是2.5亿!

因此,显然构建运行Dijkstra算法的图形是不适用的.我的下一个想法是预先计算路径(数据集是固定的),将它们存储在服务器上并在我们到达目的地[q,r]时进行回调...但这是250,000,000个路径...甚至如果我让它在不到一秒的时间内运行(我认为不会这样),那么计算所有路径需要数年时间......

我想我可能需要采取另一种方法,但我不确定,我怎样才能做到这一点?

javascript algorithm

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

java.lang.NoClassDefFoundError:org/hibernate/cache/spi/RegionFactory - 从spring 3升级到spring 4

我正在将我的spring项目从3.0.5更新到4.0.3.

一切正常,但在启动时,当spring尝试创建bean时,我正在点击此错误消息:

在此输入图像描述

该类当然不存在于ehcache-core,hibernate-ehcache或hibernate-core中.事实上,包装spi似乎并不存在.但是,我已经检查了maven依赖项,看起来像spring 4.0.3和hibernate 3.6.10应该是完全兼容的.在我的pom中,我直接依赖于hibernate-ehcache,它反过来自动引入适当版本的ehcache-core(显然是完成的事情),如下所示:

我的依赖关系看起来像:

在此输入图像描述

在此输入图像描述

我已经广泛搜索了这个错误,但只能找到它的几个引用.鉴于它的默默无闻,我猜测它是我的项目中的一个配置,它引用了这个RegionFactory类,但是,尽管经过了大量的搜索,我找不到任何东西.

有什么想法我怎么能用Spring 4.0.3建立这个项目?

我可以提供您需要的任何其他数据.

关键是要针对Spring 4.0.3进行项目构建.请释放.无论什么版本的hibernate或ehcache使我能够做到这一点并不重要.显然,我的优先选择是改变代码而不是改变代码......但是我会采取我现在能得到的东西.

编辑:我试图避免更新我的休眠过去4.xy因为这个项目是非常大的,并且使用HibernateDaoSupportHibernateTemplate非常广泛(数以千计的独立用法这将需要很长的时间来重构)

java spring hibernate spring-mvc maven

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

添加bootstrap工具提示会修改元素本身的样式 - 如何阻止这种情况发生?

JSFiddle在这里

我正在尝试将工具提示添加到现有页面.我们已经使用了bootstrap 2.3,所以它似乎是明显的选择.

我的HTML看起来像这样,说:

<script>
//initialize tooltips
$(document).ready(function(){
$('.my_button').tooltip();   
});
Run Code Online (Sandbox Code Playgroud)

<div class="my_button_row">
<a href="www.google.com" data-placement='bottom' data-toggle="tooltip" title="Some helpful text here!" class="my_button my_button_green">buttonnnnn</a>    
</div>
Run Code Online (Sandbox Code Playgroud)

我的CSS看起来像:

.my_button_row{
height: 100px;
border-bottom: 1px solid #E5E5E5;
width: 500px;
display: table;
border-collapse: separate;
border-spacing: 20px 5px;    
}

.my_button {
background: linear-gradient(to bottom, #3FACF5, rgba(56, 101, 131, 0.76)) repeat scroll 0% 0% #3498DB;  border-radius: 34px;
box-shadow: 4px 4px 4px #666;
color: #FFF;
font-size: 26px;
padding: 10px 10px;
text-decoration: none;
display: table-cell;
margin: 10px;
white-space: normal !important;
word-wrap: …
Run Code Online (Sandbox Code Playgroud)

html javascript css jquery twitter-bootstrap

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

Java:如何整齐地深度克隆HashSet?

我有一个MyObject我需要克隆的HashSet .如果MyObject实现了一个复制构造函数,那么克隆的最简单,最好的方法是什么Set myObjects

显然我可以这样做:

 Set<MyObject> myNewObjects = new Set<MyObject>(); 
 for(MyObject obj: myObjects) myNewObjects.add(new MyObject(obj));
Run Code Online (Sandbox Code Playgroud)

但我这样做是作为loooong copy-construcotr的一部分,我真的希望能够在一行中完成它,如:

public myClass(MyClass toClone){
    //... 
    this.myObjects = new Set<MyObjects>(toClone.getmyObjects()); 
    //... 
}
Run Code Online (Sandbox Code Playgroud)

有什么建议?

java cloning

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

'MaxRAM'JVM参数表示什么?

我正在查看在Linux服务器上运行的JVM的配置.我跑的时候

java -XX:+PrintFlagsFinal | less | grep -iE 'MaxRam'
Run Code Online (Sandbox Code Playgroud)

这似乎基本上打印出JDK知道的每个参数

我知道了

uint64_t MaxRAM = 137438953472  {pd product}
Run Code Online (Sandbox Code Playgroud)

但我似乎无法在这面旗帜上找到太多文件.

我发现这"{pd product}"意味着"Platform Dependent Product: An officially supported, internal JVM option"

任何人都知道这个参数的确切含义,或者我可以在哪里更详细地阅读特定于平台的JVM标志?

其他详细信息:

Java -version :.

java版"1.6.0_35"Java(TM)SE运行时环境(版本1.6.0_35-b10)Java HotSpot(TM)64位服务器VM(版本20.10-b01,混合模式)

uname -a

Linux [SERVERNAME] 2.6.32-431.17.1.el6.x86_64#1 [日期] x86_64 x86_64 x86_64 GNU/Linux

java linux jvm

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