小编Joe*_*oel的帖子

使用Spring Data和Hibernate时如何正确执行后台线程?

我正在构建一个使用Spring Data和Hibernate的简单Tomcat webapp.有一个终点可以完成很多工作,因此我想将工作卸载到后台线程,以便在完成工作时Web请求不会挂起10分钟以上.所以我在一个组件扫描包中写了一个新服务:

@Service
public class BackgroundJobService {
    @Autowired
    private ThreadPoolTaskExecutor threadPoolTaskExecutor;

    public void startJob(Runnable runnable) {
         threadPoolTaskExecutor.execute(runnable);
    }
}
Run Code Online (Sandbox Code Playgroud)

然后ThreadPoolTaskExecutor在Spring中配置:

<bean id="threadPoolTaskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
    <property name="corePoolSize" value="5" />
    <property name="maxPoolSize" value="10" />
    <property name="queueCapacity" value="25" />
</bean>
Run Code Online (Sandbox Code Playgroud)

这一切都很有效.但问题来自Hibernate.在我的runnable中,查询只有一半工作.我可以:

MyObject myObject = myObjectRepository.findOne()
myObject.setSomething("something");
myObjectRepository.save(myObject);
Run Code Online (Sandbox Code Playgroud)

但是如果我有延迟加载的字段,它会失败:

MyObject myObject = myObjectRepository.findOne()
List<Lazy> lazies = myObject.getLazies();
for(Lazy lazy : lazies) { // Exception
    ...
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.stackoverflow.MyObject.lazies, could not initialize proxy - …
Run Code Online (Sandbox Code Playgroud)

java spring multithreading hibernate spring-data

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

C# - 获取打开的任务列表

我正试图找到一种方法来获取C#中的开放任务.我一直在谷歌搜索,只能找到如何获得进程列表.我想要唯一会出现在任务栏上的任务.

此外,如果我能够获得与任务相关联的过程,那将是很酷的.如果可能的话,获取Vista用于ALT-TAB菜单的缩略图,如下图所示:

使用Alt-Tab

我假设我将不得不使用pinvokes,因为它看起来真的不像有任何库已经这样做了.有任何想法吗?

.net c# taskbar task

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

有没有办法将自然语言日期NSString转换为NSDate

说我有NSString @"tomorrow"

是否有任何库接受这样的字符串并将它们转换为NSDates?我在想象/希望这样的事情:

NSString* humanDate = @"tomorrow at 4:15";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"x at HH:MM"];
NSDate* date = [dateFormatter dateFromString:humanDate];
Run Code Online (Sandbox Code Playgroud)

我也想做"下一个星期一"等事情,但它不一定非常复杂.我可以对输入执行规则,但我想要一些自然语言.

我的另一种方法是取字符串,将其分解成碎片,然后手动格式化.但我希望有人已经这样做了.

parsing nlp objective-c nsdate ios

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

Visual Studio自动格式已损坏

我在Windows 7 Build 7100 32bit上运行Visual Studio 2008 sp1.

我以前从未遇到过这个问题,即使在Windows 7 RC的不同安装上也是如此.

当我用";"结束陈述时 或'}'或其他东西,通常VS会自动格式化该行或代码块.它不适合我.

我检查了工具 - >选项 - >文本编辑器 - > C# - >格式化 - >常规,并且已经选中3"自动格式化"复选框.当我按热键进行自动格式化时,它会按预期格式化源.

任何人都知道它为什么这样做?

我安装的可能与此有关:VS2008 SP1 SQL Server 2008 sp1 Office 2007

谢谢您的帮助

c# autoformatting visual-studio-2008

7
推荐指数
1
解决办法
4433
查看次数

Ruby on Vista

我昨天在Vista 32bit上使用本网站上的说明安装了Ruby和Ruby on Rails:http://rubyonrails.org/down

所以我下载了安装程序,然后是Gems,然后我用Gems下载了rails.

现在我不能在命令行中使用Gem或Ruby命令...所以我认为环境变量有问题,但我想知道如何在Vista中设置它们或放置什么.谁能帮我这个?

ruby rubygems ruby-on-rails windows-vista

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

Bash脚本 - 读取二进制文件

我是脚本新手,但我有很多使用C#和Java等语言编程的经验.

我有一个包含二进制数据的文件.我想编写一个Bash脚本来读取该文件中包含的年,月和日,这样我就可以根据记录日期将相关的MOD文件排序到文件夹中.我找不到一种方法来读取二进制数据并在bash脚本中解析它.有没有办法做到这一点?

bash scripting binaryfiles

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

获取浏览器是否正忙

我正试图找到一种方法,如果浏览器目前忙于JavaScript.我正在寻找一个Firefox扩展来注入一个布尔值,如果当前页面正在加载某些东西(通过ajax或只是正常的页面加载),或者与Greasemonkey脚本相同,或者通过一些JavaScript API(这会是最好的解决方案,但从我所看到的,没有任何类型存在).

我想知道最好的办法是什么.我一直在寻找Firefox Addon/Greasemonkey教程来制作这样的东西,却找不到任何东西.有没有人有他们可以指出的任何提示或资源或更好的解决方案?

谢谢

编辑:忙碌时,我大多只需要知道浏览器是从服务器发送还是接收数据.

javascript firefox greasemonkey firefox-addon

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

Jenkins多配置项目不会聚合测试结果

我有一个多配置项目设置来运行FF和IE selenium测试.但是,它没有汇总测试结果.

如果我查看项目页面,我会看到:


如果我进入特定的构建,我会看到:


但是,如果我点击其中一个特定的配置名称,我会看到:


有没有办法让这些结果聚合?(我已选中聚合下游结果项目配置复选框)

junit hudson jenkins multi-configuration

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

iPhone/Objective-C:NSMutableArray writeToFile不会写入文件.始终返回NO

我试图序列2 NSMutableArraysNSObjects实现的NSCoding协议.但是它适用于one(stacks)而不适用于其他(cards).我有以下代码块:

-(void) saveCards
{
    NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString* documentsDirectory = [paths objectAtIndex:0];

    NSString* cardsFile = [documentsDirectory stringByAppendingPathComponent:@"cards.state"];
    NSString* stacksFile = [documentsDirectory stringByAppendingPathComponent:@"stacks.state"];
    BOOL c = [rootStack.cards writeToFile:cardsFile atomically:YES];
    BOOL s = [rootStack.stacks writeToFile:stacksFile atomically:YES];
}
Run Code Online (Sandbox Code Playgroud)

我使用调试器逐步执行此方法,并在最后两行代码运行后,检查两个BOOLs 的值.BOOL cNOBOOL sYES.该stacks数组实际上是空的(这可能是它工作的原因).该cards数组有内容.为什么包含内容的数组失败了?我无法弄清楚这一点.我查看了SOF上的大量线程,他们每个人都说这个问题是因为他们写的文件的保护级别阻止了他们编写.这不是我的问题,因为我正在写入Documents文件夹.我已经加倍并且检查过,既不是rootStack.cards也不rootStack.stacks是.而且我已经检查过卡片确实有内容.

以下是我的Notecard类的编码器方法(我添加了所有的if声明作为尝试解决此问题的一部分,以确保尝试编码nil值不会破坏某些东西):

-(void) encodeWithCoder:(NSCoder *)encoder
{
    if(text)
        [encoder encodeObject:text …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c ipad

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

Java:Google App Engine"此URL不支持HTTP方法POST"错误

我刚开始玩Google App Engine和Java.我过去使用过Servlets,我理解它们是如何工作的.我正在尝试制作一个servlet POST,但它并没有很好地完成.

这是我的Servlet:

public class CreateUser extends HttpServlet
{
    private static final long serialVersionUID = 1L;

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException
    {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我从表单发布到这里时得到的结果:

HTTP ERROR 405
Problem accessing /user/create. Reason:
HTTP method POST is not supported by this URL
Run Code Online (Sandbox Code Playgroud)

当我明确实施doPost时,我不明白为什么我会这样做.我已经对DD(web.xml)文件进行了两次和三次检查,以确保我的url映射是正确的.我在网上找不到任何关于此的内容.我想我看起来很简单.

这是我的web.xml:

<web-app...>
    ...
    <servlet>
        <servlet-name>CreateUser</servlet-name>
        <servlet-class>com.joelj.music.api.CreateUser</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Index</servlet-name>
        <url-pattern>/user/create</url-pattern>
    </servlet-mapping>
</web-app>
Run Code Online (Sandbox Code Playgroud)

谢谢.

java post google-app-engine

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

使用Heroku进行Framework Framework DB升级

我正在使用Play Framework(1.2.4)我创建了一个UserAccount对象,将其部署到Heroku.工作得很好.然后我isAdminUserAccount类中添加了一个字段,在本地部署它并且工作正常(但我使用的是内存中的数据库),然后我将它部署在Heroku上,现在我得到以下异常:

2011-12-23T09:03:35+00:00 app[web.1]: play.exceptions.JavaExecutionException: org.hibernate.exception.SQLGrammarException: could not load an entity: [models.UserAccount#2]
2011-12-23T09:03:35+00:00 app[web.1]: PersistenceException occured : org.hibernate.exception.SQLGrammarException: could not load an entity: [models.UserAccount#2]
...
2011-12-23T09:03:35+00:00 app[web.1]: Caused by: javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not load an entity: [models.UserAccount#2]
2011-12-23T09:03:35+00:00 app[web.1]: Caused by: org.hibernate.exception.SQLGrammarException: could not load an entity: [models.UserAccount#2]
2011-12-23T09:03:35+00:00 app[web.1]: Caused by: org.postgresql.util.PSQLException: ERROR: column useraccoun0_.isadmin does not exist
...
Run Code Online (Sandbox Code Playgroud)

我一直在寻找如何进行数据库升级,Play网站说Hibernate应该为我处理这个问题.

这是我的数据库属性:

%prod.db=${DATABASE_URL}
%prod.jpa.dialect=org.hibernate.dialect.PostgreSQLDialect
%prod.jpa.ddl=update
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?谢谢您的帮助.

java heroku playframework

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

使用LINQ返回唯一记录

对不起,标题......我不知道怎么称呼它.

在我的数据库中,我有日期记录:

2012-02-03
2012-02-03
2012-02-05
2012-02-05
2012-02-05
2012-02-06
Run Code Online (Sandbox Code Playgroud)

以及如何使linq查询只显示具有单个日期的记录,我的意思是:

2012-02-03
2012-02-05
2012-02-06
Run Code Online (Sandbox Code Playgroud)

linq-to-sql

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