小编Jam*_*ams的帖子

使用Java的Runtime.exec()时如何添加超时值?

我有一个方法,我用来在本地主机上执行命令.我想在方法中添加一个超时参数,这样如果被调用的命令没有在合理的时间内完成,那么该方法将返回错误代码.这是迄今为止的样子,没有超时的能力:

public static int executeCommandLine(final String commandLine,
                                     final boolean printOutput,
                                     final boolean printError)
    throws IOException, InterruptedException
{
    Runtime runtime = Runtime.getRuntime();
    Process process = runtime.exec(commandLine);

    if (printOutput)
    {
        BufferedReader outputReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
        System.out.println("Output:  " + outputReader.readLine());
    }

    if (printError)
    {
        BufferedReader errorReader = new BufferedReader(new InputStreamReader(process.getErrorStream()));
        System.out.println("Error:  " + errorReader.readLine());
    }

    return process.waitFor();
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以建议我实现超时参数的好方法吗?

java timeout runtime process exec

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

没有Hibernate会话绑定到线程,配置不允许在这里创建非事务性的

当我调用使用的DAO方法时,我收到此异常SessionFactory.getCurrentSession().DAO类带有注释,@Transactional我也在<tx:annotation-driven/>应用程序上下文配置文件中声明了.

我可以调用执行HQL查询的DAO方法,但每当我调用首先获得Hibernate会话的DAO方法时,我都会遇到这个异常:

SEVERE: Failed to save the object.
org.hibernate.HibernateException: No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional one here
    at org.springframework.orm.hibernate3.SpringSessionContext.currentSession(SpringSessionContext.java:63)
    at org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:622)
    at gov.noaa.ncdc.cmb.persistence.dao.GenericDaoHibernateImpl.getCurrentSession(GenericDaoHibernateImpl.java:56)
    at gov.noaa.ncdc.cmb.persistence.dao.GenericDaoHibernateImpl.saveOrUpdate(GenericDaoHibernateImpl.java:187)
Run Code Online (Sandbox Code Playgroud)

我有以下应用程序上下文配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:flex="http://www.springframework.org/schema/flex"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
                           http://www.springframework.org/schema/flex
                           http://www.springframework.org/schema/flex/spring-flex-1.0.xsd
                           http://www.springframework.org/schema/tx
                           http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">

    <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    <!--  load values used for bean properties  -->
    <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <value>applicationContext.properties</value>
        </property>
    </bean>


    <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    <!-- …
Run Code Online (Sandbox Code Playgroud)

java spring hibernate

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

如何使用Maven获取最新的Hibernate版本?

我无法通过Maven依赖获取最新版本的Hibernate.看来我可以从Maven中央存储库获取的最新版本是3.2.6.GA,我对使用3.3.2.GA很感兴趣,这是hibernate.org网站上显示的最新版本.当我在项目的pom.xml中将我的hibernate依赖项修改为最新版本时,运行Maven构建时出现以下错误:

Missing:
----------
1) org.hibernate:hibernate:jar:3.3.2.GA

  Try downloading the file manually from the project website.

  Then, install it using the command:
      mvn install:install-file -DgroupId=org.hibernate -DartifactId=hibernate -D
version=3.3.2.GA -Dpackaging=jar -Dfile=/path/to/file

  Alternatively, if you host your own repository you can deploy the file there:

      mvn deploy:deploy-file -DgroupId=org.hibernate -DartifactId=hibernate -Dve
rsion=3.3.2.GA -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[
id]
Run Code Online (Sandbox Code Playgroud)

一旦我这样做,我继续得到错误,表明我需要添加一个javassist依赖,然后我需要更新我的hibernate-validator依赖,这也需要在本地安装,然后我停下来,环顾四周,看看是否有一种更好的方法,可能将Maven指向JBoss/Hibernate存储库等等.与我使用的其他重要的开放源代码包(例如Spring或JUnit)相比,这真的很令人头疼 - 当我发布了新版本时do是更新依赖元素中的版本号,它只是工作.

我已经尝试将以下存储库声明添加到我的pom.xml中,但没有任何乐趣:

<repositories>
    <repository>
        <id>jboss</id>
        <url>http://repository.jboss.org/maven2</url>
    </repository>
</repositories>
Run Code Online (Sandbox Code Playgroud)

我搜索谷歌并没有找到太多帮助.有人可以提出最直接的方式来使用最新版本的hibernate或hibernate-core(3.3.2.GA),hibernate-validator(3.1.0)和hibernate-annotations(3.4.0)?

dependencies maven-2 hibernate pom.xml

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

如何确定Solaris系统的IP地址

当我想知道我登录的Solaris机器的IP地址时,我想发出什么命令?

unix ip networking solaris ip-address

30
推荐指数
4
解决办法
17万
查看次数

Eclipse:比较编辑器的颜色是由插件更改的,我该如何重置这些?

我最近安装的插件(Aptana Studio)修改了各种偏好设置,卸载插件并没有让我回到原来的状态,所以我必须手动恢复设置.其中之一是比较编辑器中用于更改文本的颜色.我没有看到如何通过"颜色和字体"设置修改这些首选项,可能是因为我不清楚需要修改哪些颜色设置.

附件是一个屏幕截图,显示当前的外观,即黑色和深灰色用于突出显示Java代码的更改部分,我希望有一些更容易阅读的东西(过去常见的是这些是浅色的,适用于我的其他颜色设置).

截图

任何人都可以评论我应该修改哪些颜色设置?

eclipse

26
推荐指数
2
解决办法
8503
查看次数

如何使用Hibernate获取两个字段的唯一键?

我有一个实体类的两个字段,我不希望它们是唯一的,而是用作一个键的复合字段,它必须是唯一的.例如,我有两个字段(名称和版本),对于其他记录可以是相同的,但它们必须是唯一的.使用Hibernate(带注释)的最佳方法是什么?我正在使用Hibernate Validator用于其他字段,但我不确定如何使用它来验证两个字段一起组成一个唯一键.我正在使用一个通用实体类,它具有一个id泛型类型,可以换成复合键类,但我还没有得到它的工作得很好.

java orm annotations hibernate jpa

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

SQL:如何根据两个字段查找重复项?

我在Oracle数据库表中有行,对于两个字段的组合应该是唯一的,但是没有在表上设置唯一约束,所以我需要使用SQL找到所有违反约束的行.不幸的是,我的微薄SQL技能无法胜任.

我的表有三列相关:entity_id,station_id和obs_year.对于每一行,station_id和obs_year的组合应该是唯一的,我想通过SQL查询将它们刷出来查明是否存在违反此行的行.

我尝试了以下SQL(由前一个问题提出),但它对我不起作用(我得到ORA-00918列模糊定义):

SELECT
entity_id, station_id, obs_year
FROM
mytable t1
INNER JOIN (
SELECT entity_id, station_id, obs_year FROM mytable 
GROUP BY entity_id, station_id, obs_year HAVING COUNT(*) > 1) dupes 
ON 
t1.station_id = dupes.station_id AND
t1.obs_year = dupes.obs_year
Run Code Online (Sandbox Code Playgroud)

有人可以建议我做错了什么,和/或如何解决这个问题?

sql oracle unique unique-constraint ora-00918

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

如何使用RESTful Web服务创建异步通知系统?

我有一个Java应用程序,我通过RESTful Web服务提供.我想创建一个机制,以便客户端可以注册事件通知.问题是无法保证客户端程序将是Java程序,因此我无法使用JMS(即如果每个客户端都是Java应用程序,那么我们可以允许客户端订阅JMS主题并在那里听取通知消息).

用例大致如下:

  1. 客户端通过RESTful Web服务调用向我的服务器应用程序注册自己,表明它有兴趣在任何特定对象更新时获取通知消息.
  2. 当感兴趣的对象被更新时,我的服务器应用程序需要向所有有兴趣被通知此事件的客户发出通知.

正如我上面提到的,如果所有客户端都是Java应用程序,我知道如何执行此操作 - 设置客户端可以收听通知消息的主题.但是我无法使用该方法,因为许多客户端可能无法收听通知消息的JMS主题.

这里的任何人都可以告诉我这个问题通常是如何解决的吗?我可以使用RESTful API提供什么机制?

rest messaging events notifications message

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

选择无值的pandas单元格

我有一个pandas数据框的列,我从带有空白单元格的数据库查询中获得.空白单元格变为"无",我想检查每行是否为None:

In [325]: yes_records_sample['name']
Out[325]: 
41055    John J Murphy Professional Building
25260                                   None
41757             Armand Bayou Nature Center
31397                                   None
33104               Hubert Humphrey Building
16891                         Williams Hall
29618                                   None
3770                          Covenant House
39618                                   None
1342       Bhathal Student Services Building
20506                                   None
Run Code Online (Sandbox Code Playgroud)

我对文档的理解是,我可以使用isnull()命令http://pandas.pydata.org/pandas-docs/dev/missing_data.html#values-considered-missing检查每一行是否为空.

但是,这个功能对我不起作用:

In [332]: isnull(yes_records_sample['name'])
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

NameError Traceback (most recent call last)
<ipython-input-332-55873906e7e6> in <module>()
----> 1 isnull(yes_records_sample['name'])
NameError: name 'isnull' is not defined
Run Code Online (Sandbox Code Playgroud)

我还看到有人刚刚替换了"无"字符串,但这种方法的这些变体都不适用于我: 在Pandas中重命名"无"值

yes_records_sample['name'].replace('None', "--no value--")
yes_records_sample['name'].replace(None, "--no value--")
Run Code Online (Sandbox Code Playgroud)

我最终能够使用该fillna函数并用空字符串填充每个行 …

python null pandas na

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

Eclipse:如何在编辑文件时自动更改为正确的透视图?

我想配置Eclipse以在我打开文件进行编辑时自动更改为适当的透视图.例如,如果我在Java透视图中并打开MXML或ActionScript文件,那么我希望透视图自动更改为FlashBuilder透视图.然后,如果我重新打开Java文件进行编辑,它应该切换回Java透视图.

我想我记得当我第一次安装Eclipse时会看到一个提示,询问这是否应该是默认行为,现在我希望我接受了.我在设置中找不到任何允许我配置此行为的内容.是否有可能,如果是这样,怎么样?

我在Windows机器上运行Eclipse Helios Release 2.

eclipse

13
推荐指数
2
解决办法
4475
查看次数