小编Dhe*_*wal的帖子

如何在Spring中启动服务器启动时的守护进程

我想在tomcat服务器启动时启动一个守护进程邮件服务线程.所以,我用@Async注释注释了一个方法.

我有一个实现ApplicationListener接口的类.当我从这个类调用我的异步方法时,它永远不会异步启动并阻塞当前线程.当我从spring控制器类调用我的异步方法时,它永远不会阻塞并异步启动.

为什么异步方法从一个类成功执行而不是从另一个类执行?

我做错了什么以及如何在服务器启动时执行我的异步方法?

提前致谢.

编辑:嗨大家好,我尝试使用InitializingBean接口,@ PostConstruct,init-method方法来调用我的异步方法,但它从未执行过.然后我意识到,我的默认lazy-init是真的,所以我将我的InitializingBean的lazy-init设为false.现在它执行我的asnyc方法,但它阻止了当前线程,现在还有一个问题,我面临的是我的服务器没有正常停止,但我必须强行停止我的服务器.

java spring

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

在将Dom元素转换为字符串时获取NullPointerException

我在以下代码中得到NullPointerException:

String str = SOME_HTML_STRING;
Node node = convertStrIntoNodeUsingJTidy();
domToString(node);

//converts node to string    
public static String domToString(org.w3c.dom.Node node)throws Exception {
    try {
        StringWriter sw = new StringWriter();
        TransformerFactory tf = TransformerFactory.newInstance();
        Transformer transformer = tf.newTransformer();
        transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");

        // NullPointerException at this line, although node is not null
        transformer.transform(new DOMSource(node), new StreamResult(sw)); 
        return sw.toString();
    } catch (Exception ex) {
        throw new Exception("Error converting to String", ex);
    }
}
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪是:

Caused by: javax.xml.transform.TransformerException: java.lang.NullPointerException
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source)
at …
Run Code Online (Sandbox Code Playgroud)

java xml

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

标签 统计

java ×2

spring ×1

xml ×1